我使用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 /")。
我在这里缺少什么?
答案 0 :(得分:1)
您的登录表单是否包含一个隐藏字段,其名称为" next"?如果不是,您需要添加一个:
<input type="hidden" name="next" value="{{ next }}" />
Django将尝试使用查询字符串中的值填充redirect_field_name
指定的字段。然后将此值传递回POST中的视图,如果已填充,则会重定向到指定的URL。