Skip to main content
 首页 » 编程设计

python之更改电子邮件地址时发送电子邮件

2024年08月30日39zlslch

在我的 DJango 应用程序中,我想实现一个系统,以便当我的 jmodel 中的 email 字段发生更改时,MyModel 会向该电子邮件发送一封电子邮件地址。我的这个模型上有一个 ModelForm。我应该如何以及如何实现?

  1. 我是否应该覆盖我的 ModelForm 的 save() 方法并将电子邮件发送到那里?
  2. 我是否应该 try catch 某种模型更新信号并将电子邮件发送到那里——如果是的话,怎么做?我应该捕获什么信号?

检查电子邮件是否已更改的好方法是什么。这本身是一件微不足道的事情,但我希望代码驻留在它的正确位置。

谢谢

检查字段是否已更改:Django: When saving, how can you check if a field has changed?

请您参考如下方法:

您可以使用 django-model-changes无需额外的数据库查找即可执行此操作:

from django.db import models 
from django.dispatch import receiver 
from django_model_changes import ChangesMixin 
 
class MyModel(ChangesMixin, models.Model): 
   # your model 
 
@receiver(pre_save, sender=MyModel) 
def send_email_if_changed(sender, instance, **kwargs): 
    if 'email' in instance.changes(): 
        # send email