我在视图中有以下形式逻辑:
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
为什么在提交表单后不会发生重定向?
答案 0 :(得分:5)
您似乎忘记在return
之前添加 redirect()
语句。
为什么需要return
?因为redirect
方法只是HttpResponseRedirect
的快捷方式,所以它的行为与任何其他操作相同:它必须返回响应。
所以你的代码应该是这样的:
...
print 'before redirect'
return redirect('customer:department-edit')
print 'after redirect'
...