请求.GET与django中的request.POST/Redirect/GET

时间:2015-03-09 10:17:09

标签: django django-forms

在处理具有多个输入参数和分页的表单时,用户可以选择任意数量的参数(如搜索表单)哪种方法更好,为什么?直接从request.GET接收数据在一个视图中或实现Post / Redirect / Get(2个视图)。

使用Post / Redirect / Get,可以使用ModelForms内置方法轻松清理数据:

if request.method == 'POST': 
    form = MySearchForm(request.POST)
    if form.is_valid():
        cd = form.cleaned_data
        #do stuff with cd

您如何使用request.GET清理数据?

在这种情况下,为什么要使用request.GET而不是POST / Redirect / GET?

1 个答案:

答案 0 :(得分:3)

这取决于你的表格。如果您要创建/修改数据,请使用POST。否则,请使用GET(请参阅http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods)。

您仍然可以将form.cleaned_data与GET一起使用,只需将request.GET传递给表单即可。