0

在我看来,我有以下表单逻辑:

if request.method == 'POST':
        form = MyForm(request.POST, request.FILES)
        if form.is_valid():

            my_form = form.save()                                          )
            print 'before redirect'
            redirect('customer:department-edit')
            print 'after redirect'

我的网址条目如下所示:

url(r'^departments/$', views.departments_view, name='department-edit'),

我得到以下输出:

before redirect
after redirect

为什么提交表单后不会发生重定向?

4

1 回答 1

5

之前好像忘记添加return语句了redirect()

为什么需要一个return?因为该redirect方法只是 a 的快捷方式HttpResponseRedirect,所以它的行为类似于任何其他操作:它必须返回一个响应。

所以你的代码应该是这样的:

...
print 'before redirect'
return redirect('customer:department-edit')
print 'after redirect'
...

请参阅Django 文档示例:)

于 2013-09-06T20:03:54.780 回答