gpt4 book ai didi

python - 如何将 'next' 参数传递给 Django Auth logout_then_login View ?

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:07 25 4
gpt4 key购买 nike

我正在使用 Django 1.6,django.contrib.auth.views。我正在使用下面的登录和注销 URL 定义。现在,当用户点击我的注销链接时,'logout_then_login' View 会像它应该的那样被触发,但是当用户重新登录时,'next' 参数未定义并且页面被转发到默认的'accounts/profile'小路。我宁愿发生的是 logout_then_login View 将“下一个”值转发到登录 View 。

例如,用户在单击注销时位于页面/foo/bar 上。我希望将他们发送到登录屏幕,并将“/foo/bar”设置为下一个参数,这样当他们再次登录时,他们就会回到原来的页面。我希望它是动态的,基于单击注销链接时的 request.path。我知道在 next 未定义时覆盖默认值的静态解决方案。

当前 urls.py:

from django.contrib.auth.views import login, logout_then_login


urlpatterns = patterns('base.views',
url(r'^accounts/login/$', login, name='login'),
url(r'^accounts/logout/$', logout_then_login, name='logout'),
)

我试过为 logout_then_login 使用 extra_context 参数,但甚至不确定在模板中使用命名 url 应该是什么样子:

<a href="{% url 'logout' extra_context={'next': request.path } %}">Log Out</a>

我是否在正确的轨道上 - 或者是否有更好的方法来做到这一点?

最佳答案

好的,事实证明这很简单。当我试图将下一个参数塞入 url 模板标记时,我想多了。

我只需要在 url 模板标签之后添加下一个参数:

<a href="{% url 'logout' %}?next={{request.path}}"> Log Out</a>

关于python - 如何将 'next' 参数传递给 Django Auth logout_then_login View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20689960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com