在调用after_model_change
时,可以通过form
参数获取模型中发生变化的字段。form
参数是一个wtforms
表单对象,可以使用form.data
属性获取表单数据。通过比较表单数据和模型数据,可以确定哪个字段发生了变化。
以下是一个示例代码:
from flask_admin.contrib.sqla import ModelView
class MyModelView(ModelView):
def after_model_change(self, form, model, is_created):
changed_fields = []
for field in form.data:
if getattr(model, field) != form.data[field]:
changed_fields.append(field)
if changed_fields:
# 处理发生变化的字段
print("发生变化的字段:", changed_fields)
else:
print("没有字段发生变化")
在上述示例中,after_model_change
方法接收三个参数:form
,model
和is_created
。通过比较form.data
和model
的属性值,可以确定哪个字段发生了变化,并将其添加到changed_fields
列表中。如果changed_fields
列表不为空,则表示有字段发生了变化。
请注意,上述示例中的代码仅用于演示目的,实际应用中可能需要根据具体需求进行修改和优化。
关于Flask-Admin和ModelView的更多信息,您可以参考腾讯云的相关文档和产品介绍:
领取专属 10元无门槛券
手把手带您无忧上云