我已经为我的数据库创建了一个搜索表单的函数,方法工作正常,但是我不知道我应该使用queryBooks = request.GET['queryBooks']
还是form.cleaned_data.get('queryBooks')
这是我的代码。
# views.py
def SearchBook(request):
error = False
message = ''
books = Books.objects.all()
if 'queryBooks' in request.GET:
queryBooks = request.GET['queryBooks']
if not queryBooks:
error = True
message = u'enter book or author title'
else:
books = Books.objects.filter\
(
Q(book__icontains=queryBooks) | Q(Author__name__icontains=queryBooks)
)
contexto = {'Books': books, 'Error': error, 'Message': message}
return render(request, 'list_of_book.html', contexto)
# list_of_book.html
<form action="" method="get">
<input type="text" name="queryBooks">
<input type="submit" value="search">
</form>
# urls.py
url(r'^books/search/$', SearchBook, name='searchBook'),
答案 0 :(得分:0)
您的视图中没有form
,所以
form.cleaned_data.get('queryBooks')
会给你一个错误。
一般情况下,我建议您了解Django forms,因为他们负责渲染html,并验证用户的输入。对于您的具体示例,从request.GET
获取查询字符串可能没问题。