用Djang发送电子邮件的if语句

2024-09-25 10:29:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力使它,使这封电子邮件将只发送,如果布尔字段是真的。不幸的是,我经常收到无效的语法错误。在

在模型.py在

class PurchaseOrder(models.Model):
    has_responded = models.BooleanField(default = True)
    confirmed = models.NullBooleanField(null=True)

在视图.py在

^{pr2}$

我想在has_nguresponsed默认为True的地方进行。然后执行if语句,其中def confirm只在has_responsed为True时执行。在def的末尾,我想让has-unu回应为false。因此,它只执行一次。不幸的是,我经常出错,我不知道为什么。上面的代码都可以工作,但是当我实现if语句时,它就崩溃了。在

编辑:

这是给我错误的代码

  def confirm(request, itemnum):
     item = get_object_or_404(PurchaseOrder, item_number = itemnum)
     if item.has_responded == True
         item.confirmed = True
         item.save()
         confirm_title = 'Purchase Order %s Confirmed' % item.product
         send_mail(confirm_title, 'Check the Product Order System to see the updated list.', 'myemail@gmail.com',['youremail@gmail.com'], fail_silently=False)
         return HttpResponse('Product  %s  confirmed' % item.product )
         item.has_responded = False

Tags: 代码pytrueiftitlemodelsdef语句
1条回答
网友
1楼 · 发布于 2024-09-25 10:29:51

您忘记了if item.has_responded == True后面的:。它应该是:

if item.has_responded == True:

此外,您的代码中还有一些错误:

  1. 您需要将item.has_responded = False移到return语句之前,否则这行代码将无法执行
  2. item.has_responded = False时发送适当的HttpResponse

相关问题 更多 >