python - 覆盖 Flask Admin 在表中保存新行
问题描述
通过 Flask 的管理面板在表格中创建新行时,我如何能够覆盖和添加一些额外的代码?
例如:用户在“发布”表中输入新行的信息,然后单击保存。我想添加一些代码以使用该新行信息自动化流程。
解决方案
显然,您可以on_model_change
在保存/更新新模型之前覆盖这些方法以执行操作,或者在之后执行某些操作。after_model_change
您可以从类继承,BaseModelView
或者ModelView
如果您使用的是 Flask-SqlAchemy。
在每种情况下,都提供了 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
,除了您只有模型作为参数给出。
推荐阅读
- javascript - 来自数组的 15 个随机数 (JS)
- java - Swagger @ApiParam 需要在传递 null 时不起作用
- scala - 对于理解内的 Either 值的模式匹配?
- python - 将预测方法作为函数参数传递
- javascript - 无法在没有得到语法或调用未定义函数错误的情况下将 JQuery 添加到 wordpress
- c - fscanf 在文件末尾返回 3 而不是 -1 (EOF)
- intellij-idea - 如何为 IntelliJ 中的所有 Rust/Cargo 测试设置 --nocapture 标志?
- jsf - Primefaces f:facet name="first" and "last" in h:head 不用于订单
- asp.net-mvc - InvalidOperationException:不正确的内容类型:Microsoft.AspNetCore.Http.Features.FormFeature.ReadForm()
- angular - Bootstrap NgbDate 日期范围日历 - “TypeError:无法读取未定义的属性‘等于’”