Django 如果表单发生更改,则触发。德扬戈
我在票务系统工作时遇到问题。用户创建一个票证并将信息发送到他们的电子邮件中。当从管理面板更改票据时,如何发送新信息 型号:Django 如果表单发生更改,则触发。德扬戈,django,Django,我在票务系统工作时遇到问题。用户创建一个票证并将信息发送到他们的电子邮件中。当从管理面板更改票据时,如何发送新信息 型号: class TroubleTicket(models.Model): title = models.CharField(max_length=200) name = models.CharField(max_length=200) address = models.CharField(choices=ADDRESSES, default=None,
class TroubleTicket(models.Model):
title = models.CharField(max_length=200)
name = models.CharField(max_length=200)
address = models.CharField(choices=ADDRESSES, default=None,
max_length=200)
room = models.CharField(max_length=50)
message = RichTextUploadingField()
state = models.CharField(choices=STATES, max_length=30,
default='New')
answer = RichTextUploadingField(blank=True, null=True)
email = models.CharField(max_length=200, blank=True, null=True)
create_date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.title
def get_absolute_url(self):
return reverse('ticket_detail', kwargs={'pk': self.id})
class Meta:
ordering = ['-create_date']
如果用户指定了邮件,则保存表单并发送邮件:
class CreateTicket(CreateView):
template_name = 'incidentjournal/add_ticket.html'
form_class = TicketForm
model = TroubleTicket
context_object_name = 'ticket'
success_url = reverse_lazy('home')
def form_valid(self, form):
recipient = form.cleaned_data['email'].encode('utf8')
new_ticket = form.save()
new_ticket_id = new_ticket.pk
address = new_ticket.address.encode('utf8')
title = new_ticket.title.encode('utf8')
name = new_ticket.name.encode('utf8')
room = new_ticket.room.encode('utf8')
send_to_email(recipient, str(new_ticket_id), title, address,
room, name)
send_to_bot(str(new_ticket_id), title, address, room, name)
return super(CreateTicket, self, ).form_valid(form)
如果状态或答案在管理面板中已更改,我想将更改发送给用户
谢谢你的建议 如果
状态
更改意味着该特定票据是否已正确更新?所以,当有变化时,为什么不使用UpdateView发送电子邮件呢。你试过类似的东西吗?看看文档。这应该是一个解决办法。