1

我对 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 %}'s 语法来做到这一点,但没有运气。

PS 对不起,如果它看起来没有建设性,甚至不是一个真正的问题。这确实是一种最佳实践,但我对此太陌生,无法依靠我自己的判断来判断该方法的缺点。从文档中我无法理解我应该如何使用这些视图。

4

1 回答 1

2

是的,这很好。GET 参数不是用于 URL 解析或反转的 URL 的一部分,因此这确实是唯一的方法。

于 2013-01-29T20:45:31.233 回答