【发布时间】:2019-08-05 03:26:03
【问题描述】:
我的模板中有一个表单(不是 Django 表单)
我的观点:
def advanced_search(request):
publish_houses = PublishHouse.objects.all()
authors = Author.objects.all()
context = {
'publish_houses': publish_houses,
'authors': authors,
'Category_Choice': Category_Choice,
}
return render(request, 'books/advanced_search.html', context)
它只显示搜索表单
用于显示结果:
def result(request):
publish_houses = PublishHouse.objects.all()
authors = Author.objects.all()
queryset_list = Book.objects.order_by('-book_date')
# Title
if 'title' in request.GET:
title = request.GET['title']
if title:
queryset_list = queryset_list.filter(title__icontains=title)
# Author
if 'author' in request.GET:
author = request.GET['author']
if author:
queryset_list = queryset_list.filter(author__name__iexact=author)
# Category
if 'category' in request.GET:
category = request.GET['category']
if category:
queryset_list = queryset_list.filter(classification__iexact=category)
# Publish house
if 'publisher' in request.GET:
publisher = request.GET['publisher']
if publisher:
queryset_list = queryset_list.filter(publish_house__name__iexact=publisher)
# Price
if 'min_price' and 'max_price' in request.GET:
min_price = request.GET['min_price']
max_price = request.GET['max_price']
if min_price and max_price:
queryset_list = queryset_list.filter(price__gte=min_price, price__lte=max_price)
context = {
'publish_houses': publish_houses,
'authors': authors,
'Category_Choice': Category_Choice,
'books': queryset_list,
'values': request.GET,
}
return render(request, 'books/result.html', context)
如果没有数据,我想检查所有字段中是否没有数据以重定向回高级搜索表单
我试图将字段的数据放在一个变量中,例如:
title = request.GET['title']
然后通过if not检查每个字段,但它给了我MultiValueDictKeyError
任何想法我该怎么做?
提前致谢
【问题讨论】:
-
MultiValueDictKeyError 的任何细节?调用栈
-
准确的错误触发语句会有所帮助
标签: python python-3.x django-templates django-views