Preconditions:
I\'m new to Python and to Flask-Admin in particular. I created a simple test service, which has MondoDB, keeping the data with relationship of \'
I ended up overriding a save
method in my Document-derived class.
So now my Employee class contains this kind of code:
def save(self, *args, **kwargs):
print 'whatever I want to do myself is here'
return super(Employee, self).save(*args, **kwargs)
Today I found that this solution is actually nothing new and is described on StackOverflow.
But for my specific case I think Joes' answer is better. I like it more, because if I override on_model_change
I invoke my custom code only if I edit database through Admin webpage; and each programmatic operation over database (like save
, update
) will work using native code - which is exactly what I want. If I override save
method, I will be handling every save operation myself, whether It was initiated by Admin area or programmatically by the server engine.
Solved, thank you!
You can override on_model_change
method to add your custom logic. Check http://flask-admin.readthedocs.org/en/latest/api/mod_model/#flask.ext.admin.model.BaseModelView.on_model_change