Yes, in my branch jrbl-1482-parent-assignment-static-page-edits I abstract this boilerplate into a function call, which explicitly checks the object's .mode and returns object.image if .mode != u'ready'.

Right now that call is in courses/actions.py, but I debated whether it belonged in the model.

Or .add_parent and .add_child could just be made mode-aware in this way, of course, but somehow that feels a bit clumsy to me.