首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多重messages.error Django

多重messages.error Django
EN

Stack Overflow用户
提问于 2017-03-09 17:42:11
回答 2查看 535关注 0票数 0

我希望使用Django消息捕获不正确的信息。我有一个工作正常的message.error,但是当我添加更多的潜在消息时,它们就不能工作了。这是我的代码:

代码语言:javascript
复制
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。我做错了什么?所有的对象都在获取正确的数据。

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-09 18:22:47

代码语言:javascript
复制
approved = PDFStat.objects.filter(quote_num=order).values_list('sales_approved', flat=True)

这将返回一个查询集值,例如[True,]。将其与True进行比较总是会返回False。

也许你想要这样的东西:

代码语言:javascript
复制
pdf_stat = PDFStat.objects.get(quote_num=order)
approved = pdf_stat.sales_approved

注意,如果没有与get()匹配的行或多行,则可能需要额外的代码来处理这种情况。

票数 1
EN

Stack Overflow用户

发布于 2017-03-09 18:14:27

代码语言:javascript
复制
 messages.error(requet, order + ' has already been approved by Sales').

'requet' should be 'request'

字符串连接应该是。

代码语言:javascript
复制
messages.error(request, '{0} has already been approved by Sales'.format(order)).
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42702030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档