django重定向不重定向

Posted

技术标签:

【中文标题】django重定向不重定向【英文标题】:django redirect not redirecting 【发布时间】:2013-09-11 00:21:42 【问题描述】:

我认为有以下表单逻辑:

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

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

【问题讨论】:

【参考方案1】:

您似乎忘记在redirect() 之前添加return 语句。

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

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

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

见Django Documentation example :)

【讨论】:

以上是关于django重定向不重定向的主要内容,如果未能解决你的问题,请参考以下文章

python - Django内置登录视图不重定向到下一个

使用 Django 和 AllAuth 登录后不重定向到我自己的视图

HTTP 重定向不重定向

使用 .htaccess 重定向 404 而不重定向尾部斜杠

重定向进入空白页面而不重定向到路由 Laravel 5.8

JSF过滤器在初始重定向后不重定向[关闭]