我开发了一个 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 时向用户发送电子邮件的功能?
你可以这样做
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()