We have a specific function in ExerciseLog and VideoLog to do this.  We really should try to be consistent about using them--otherwise, people learning the codebase won't know to use them.

It's called "get_or_initialize".