我正在尝试这样做,以便只有在布尔字段为真时才会发送此电子邮件。不幸的是,我经常遇到无效的语法错误。
在models.py
中class PurchaseOrder(models.Model):
has_responded = models.BooleanField(default = True)
confirmed = models.NullBooleanField(null=True)
在views.py中
def confirm(request, itemnum):
item = get_object_or_404(PurchaseOrder, item_number = itemnum)
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 )
我想将has_responded默认为True。然后执行if语句,其中def confirm仅在has_responded为True时执行。在def结束时,我想将has_responded设为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
答案 0 :(得分:2)
您忘记了:
之后的if item.has_responded == True
。它应该是:
if item.has_responded == True:
您的代码中还有更多错误:
item.has_responded = False
语句之前移动return
,否则该行代码将不会执行HttpResponse
item.has_responded = False
醇>