如何检查models django中的状态字段并向用户发送邮件?

问题描述 投票:0回答:1

我开发了一个 Django 票务系统,用户可以在其中提交票证,每个票证都有一个状态字段,指示它是否已解决(True 表示已解决)。我想实现这样的功能:当票证状态更改为 True 时,会向发布票证的用户发送一封电子邮件。

这是我的门票模型:

from django.db import models
from django.contrib.auth.models import User

class Ticket(models.Model):
    name = models.ForeignKey(Device, on_delete=models.CASCADE, blank=True, null=True)
    location = models.CharField(max_length=200)       
    company = models.CharField(max_length=200)
    serial_number = models.CharField(max_length=200)
    problem = models.CharField(max_length=1000)
    contact_number = models.CharField(max_length=200)
    status = models.BooleanField(default=False)
    author = models.ForeignKey(User, on_delete=models.CASCADE, related_name="tickets", null=True)
    executive = models.ForeignKey(Executive, on_delete=models.CASCADE, blank=True, null=True)

    def __str__(self):
        return self.problem

如何实现当票证状态更改为 True 时向用户发送电子邮件的功能?

python django status
1个回答
0
投票

你可以这样做

from django.core.mail import send_mail

class tickets(models.Model):
   email_as_send = models.BooleanField(default=False)
    ...

   def save(self):
       if self.status and self.email_as_send:
          send_mail("subject", "message","[email protected]", [self.author.email])
          self.email_as_send = True
       super().save()
© www.soinside.com 2019 - 2024. All rights reserved.