我对Django以及与Web相关的一切都没有经验,但我想确保从一开始就遵循最佳实践。
我正在使用django.contrib.auth
而在base.html
我有类似的内容:
{% if request.user.is_authenticated %}
<a href="{% url 'django.contrib.auth.views.logout' %}?next={{ request.path }}">Logout</a>
{% else %}
<a href="{% url 'django.contrib.auth.views.login' %}?next={{ request.path }}">Login</a>
{% endif %}
和我的urls.py
:
from django.contrib.auth.views import login, logout
...
urlpatterns += patterns('',
url(r'^login/$', login, {'template_name': 'omgame/login.html'}),
url(r'^logout/$', logout, {'redirect_field_name': 'next'}),
)
如您所见,我正在URL中构建一个带有GET参数的URL,以便在登录/注销后实现重定向。
这是我应该如何处理这个?最初我试图使用{% url %}
的语法来做,但没有运气。
P.S。对不起,如果它似乎没有建设性,甚至不是一个真正的问题。这确实是一种最好的做法,但是我太新了,不能依靠我自己的判断方法的缺点。从文档中我无法理解我应该如何使用这些视图。
答案 0 :(得分:2)
是的,这很好。出于URL解析或反转的目的,GET参数不是URL的一部分,因此这是实现它的唯一方法。