Actually, there were several properties not supported by the constructor so it could not have been used to construct an object fetched from the DB the way it was.  I'm not opposed to adding them back but seems pointless unless we add them all.  Historically, the model objects were only used to create new document in the DB and not used to construct objects fetched from the DB.  As such, the model object constructor only supported a min set of required attributes.  That said, I think our model objects will get the behavior you're talking about for free (and without the cruft of writing __init__() that take every attribute) when (if) we switch to MongoEngine.  I think we should revisit all of our model objects then since they will all need to be rewritten.