通过Flask中的“管理”面板在表格中创建新行时,如何覆盖并添加一些额外的代码?
例如:用户在“发布”表中为新行输入信息,然后单击保存。我想添加一些代码以使用该新行信息自动执行流程。
最佳答案
显然,您可以覆盖方法on_model_change
以执行操作,然后再保存/更新新模型,或者之后after_model_change
进行操作。
如果使用Flask-SqlAchemy,则可以从类BaseModelView
或ModelView
继承。
在每种情况下,都提供3个参数以供使用:视图使用的form
,新的/更新的model
和标志is_created
,以了解模型是新的(True
)还是已更新。
您可以如下定义模型视图:
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
class PostView(ModelView):
def after_model_change(self, form, model, is_created):
print(form, model, is_created)
def on_model_change(self, form, model, is_created):
print(form, model, is_created)
admin = Admin(template_mode='bootstrap3')
admin.add_view(PostView(Post, db.session, name='Posts'))
注意:您可以使用
on_model_delete
和after_model_delete
来使用相似的方法来删除零件,但只有模型作为参数。关于python - 覆盖Flask Admin在表中保存新行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51275940/