0

我正在构建一个基于 Web 的应用程序,在其中我需要E-mail在更新或修改表中的某些值之后将通知发送给注册用户。

我有一个model.py

class ProileComment(models.Model):
    comment = models.TextField()
    user = models.CharField(max_length=30, null=False, blank=True)
    timestamp = models.DateTimeField(null=False, blank=True)

方法在views.py

def send_email(request):
   ##

根据我的问题,如果ProfileComment模型会更新,那么它应该自动调用该send_email方法。这样该用户将收到有关数据库更改的通知。我应该如何进行?

4

1 回答 1

1

您可以使用 django信号

https://docs.djangoproject.com/en/dev/ref/signals/

它们允许您注册一个信号监听器。也许 pre_save 信号最适合您的需求?每当您的应用程序中的任何位置保存某些内容时,都会调用您的信号,您可以根据模型或您需要的任何其他条件做出决定。

或者,如果您只想为那个模型发送电子邮件,您可以覆盖该save方法!

class ProfileComment(models.Model):


    def save(self, *args, **kwargs):
      # send email?
      super(ProfileComent, self, *args, **kwargs) # make sure to call parent!
于 2012-07-11T19:49:34.037 回答