django登录视图不尊重'next'参数

时间:2014-10-01 08:22:02

标签: django

我使用django.contrib.auth.views.login视图进行身份验证。

settings.py

 LOGIN_URL : 'accounts/signin/'

当请求出现时: /帐户/登入/?下一= /轮询/书籍/

验证成功后,应重定向到/polls/books/ 并查看它看起来像:

@login_required(login_url='/accounts/signin/', redirect_field_name='next')
    def category_polls(request, catslug=False):
        # all polls of a category
        cat = db.get_category(type=catslug)
        poll_obj = db.get_polls(category=cat.id)
        data={}
        data['poll_obj'] = poll_obj
        return render_to_response("polls/category_polls.html", data, context_instance=RequestContext(request))

它没有做,而是重定向到默认值LOGIN_REDIRECT_URL(" / accounts / profile /")。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您的登录表单是否包含一个隐藏字段,其名称为" next"?如果不是,您需要添加一个:

<input type="hidden" name="next" value="{{ next }}" />

Django将尝试使用查询字符串中的值填充redirect_field_name指定的字段。然后将此值传递回POST中的视图,如果已填充,则会重定向到指定的URL。