Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如果表单发生更改,则触发。德扬戈_Django - Fatal编程技术网

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发送电子邮件呢。你试过类似的东西吗?看看文档。这应该是一个解决办法。