我希望使用Django消息捕获不正确的信息。我有一个工作正常的message.error,但是当我添加更多的潜在消息时,它们就不能工作了。这是我的代码:
def order_approve(request):
if request.method == 'POST':
form = Approved(request.POST or None)
success = False
if form.is_valid:
order = request.POST.get('order')
department = request.POST.get('department')
name = request.POST.get('name')
notes = request.POST.get('notes')
check = department
if check == 'wrong': #I have a column that is '-----' for placeholding
messages.error(request, 'Please select a valid department')
else:
if department == 'sales':
approved = PDFStat.objects.filter(quote_num=order).values_list('sales_approved', flat=True)
if approved == True:
messages.error(requet, order + ' has already been approved by Sales')
else:
PDFStat.objects.select_related().filter(quote_num=order).update(
sales_name = name, sales_approved = True,
sales_date=datetime.today())
HomeTable.objects.filter(quote_num=order).update(
last_app = 'Sales')
if notes != '':
object1 = PDFStat.objects.select_related().filter(quote_num=order)
for a in object1:
if a.sales_notes == None:
PDFStat.objects.select_related().filter(quote_num=order).update(
sales_notes = notes)
else:
a.sales_notes = a.sales_notes + " " + notes
a.save()
messages.success(request, 'The quote has successfully been approved by ' + name + ' in ' + department)
form = Approved()
success = True
return render(request, 'approved.html', {'form': form})
else:
form = Approved()
return render(request, 'approved.html', {'form': form})我的第一个messages.error工作得很好,但是当它转到if approved == True上时,不管它是真是假(在我的数据库中),它都会移动到or。我做错了什么?所有的对象都在获取正确的数据。
谢谢你的帮助!
发布于 2017-03-09 18:22:47
approved = PDFStat.objects.filter(quote_num=order).values_list('sales_approved', flat=True)这将返回一个查询集值,例如[True,]。将其与True进行比较总是会返回False。
也许你想要这样的东西:
pdf_stat = PDFStat.objects.get(quote_num=order)
approved = pdf_stat.sales_approved注意,如果没有与get()匹配的行或多行,则可能需要额外的代码来处理这种情况。
发布于 2017-03-09 18:14:27
messages.error(requet, order + ' has already been approved by Sales').'requet' should be 'request'。
字符串连接应该是。
messages.error(request, '{0} has already been approved by Sales'.format(order)).https://stackoverflow.com/questions/42702030
复制相似问题