【问题标题】:An if statement to send an email in Django在 Django 中发送电子邮件的 if 语句
【发布时间】:2013-08-06 21:21:24
【问题描述】:

我正在努力使这封电子邮件仅在布尔字段为真时发送。不幸的是,我经常遇到无效的语法错误。

在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

【问题讨论】:

  • 用你的if 声明和错误回溯发布原始代码
  • 请显示出现错误的代码。
  • 添加了给我错误的代码。很抱歉没有将其包含在原始帖子中。
  • 您遇到的语法错误是什么(堆栈跟踪)?
  • 还需要在return 语句之前设置item.has_responded = False,否则该行代码将永远不会执行。请发布原始错误:/

标签: python django if-statement logic


【解决方案1】:

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

if item.has_responded == True:

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

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

【讨论】:

  • 非常感谢!当它是诸如 : 和 #1 之类的小东西时太令人沮丧了。对于措辞不当的帖子,我深表歉意。我很沮丧,很匆忙。
猜你喜欢
  • 2015-08-06
  • 1970-01-01
  • 2018-01-11
  • 2012-04-26
  • 2011-10-18
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
相关资源
最近更新 更多