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

I use Flask-Admin ModelView. I want to know which field in the model is changed when calling `after_model_change`

class View(ModelView):    
    def after_model_change(self, form, model, is_created):
        if model.is_enabled:
            subject = "subject"
            template = render_template('template.html')

            mail.send_email(from_email='example@mail.com',
                          to_email=model.email, subject=subject, text=template)

我找到了这个解决方案。 edit_form方法实例化模型编辑表单,我取我需要的值。之后在 after_model_change 方法中,我检查此值是否已更改并决定是否发送电子邮件。

class View(ModelView):    
    def after_model_change(self, form, model, is_created):
        if self.user_is_enabled != model.is_enabled:
            if model.is_enabled:
                subject = "subject"
                template = render_template('template.html')

                mail.send_email(from_email='example@mail.com',
                              to_email=model.email, subject=subject, text=template)

    def edit_form(self, obj=None):
        try:
            self.user_is_enabled = obj.is_enabled
        except AttributeError:
            pass

        return ModelView.edit_form(self, obj)