我使用 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)
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)