我有一行urls.py:
url(r'^logout/$', 'django.contrib.auth.views.logout', name="auth_logout"),
Run Code Online (Sandbox Code Playgroud)
在我的模板标签中,我有这一行:
<a href="{% url auth_logout %}">Logout</a>
Run Code Online (Sandbox Code Playgroud)
现在,我想将next_page参数添加到url templatetag,但我无法让它工作.我试过这个:
{% url auth_logout request.path %}"
Run Code Online (Sandbox Code Playgroud)
...还有这个:
{% url auth_logout request,request.path %}
Run Code Online (Sandbox Code Playgroud)
但它们都不起作用.如何使用url templatetag为可选的next_page参数提供该功能?
谢谢!
小智 27
对于它的价值,我使用这个:
<a href="{% url auth_logout %}?next=/">Logout</a>
Run Code Online (Sandbox Code Playgroud)
hug*_*own 26
两件事情:
所以,首先修改你的url以接受next_page你的URLConf需要修改才能传递到下一页,对于硬编码的重定向,这样的事情:
url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}, name='auth_logout'),
Run Code Online (Sandbox Code Playgroud)
和一个参数化结果:
url(r'^logout/(?P<next_page>.*)/$', 'django.contrib.auth.views.logout', name='auth_logout_next'),
Run Code Online (Sandbox Code Playgroud)
然后修改您的模板以传递next_page
<a href="{% url auth_logout_next /some/location %}">Logout</a>
Run Code Online (Sandbox Code Playgroud)
Sander Smits拥有最简单的解决方案.在你的情况下使用:
<a href="{% url "auth_logout" %}?next={{ request.path|urlencode }}">Logout</a>
Run Code Online (Sandbox Code Playgroud)
在更一般的情况下,使用:
<a href="{% url "auth_logout" %}?next={% url "my_url" my_params |urlencode %}">Logout</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16110 次 |
| 最近记录: |