我应该使用request.GET ['...']还是form.cleaned_data.get('...')

时间:2015-06-14 23:20:16

标签: django

我已经为我的数据库创建了一个搜索表单的函数,方法工作正常,但是我不知道我应该使用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'), 

1 个答案:

答案 0 :(得分:0)

您的视图中没有form,所以

form.cleaned_data.get('queryBooks')

会给你一个错误。

一般情况下,我建议您了解Django forms,因为他们负责渲染html,并验证用户的输入。对于您的具体示例,从request.GET获取查询字符串可能没问题。