首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我使用Flask-Admin ModelView。我想知道在调用`after_model_change`时模型中的哪个字段发生了变化

在调用after_model_change时,可以通过form参数获取模型中发生变化的字段。form参数是一个wtforms表单对象,可以使用form.data属性获取表单数据。通过比较表单数据和模型数据,可以确定哪个字段发生了变化。

以下是一个示例代码:

代码语言:txt
复制
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方法接收三个参数:formmodelis_created。通过比较form.datamodel的属性值,可以确定哪个字段发生了变化,并将其添加到changed_fields列表中。如果changed_fields列表不为空,则表示有字段发生了变化。

请注意,上述示例中的代码仅用于演示目的,实际应用中可能需要根据具体需求进行修改和优化。

关于Flask-Admin和ModelView的更多信息,您可以参考腾讯云的相关文档和产品介绍:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券