0

我正在尝试执行此链接中所说的操作: https ://docs.djangoproject.com/en/1.5/topics/auth/default/#django.contrib.auth.views.login

因此,在上面提供的链接中,它讨论了“URL 名称:登录”,在可选参数中它说:

“redirect_field_name:包含登录后重定向到的 URL 的 GET 字段的名称。如果传递给定的 GET 参数,则覆盖下一个。”

我如何指定下一步是什么?如果你向下滚动一点,它会说

“...视图重定向到下一个指定的 URL。如果没有提供下一个,它会重定向到 settings.LOGIN_REDIRECT_URL”。

我如何指定下一步是什么以及settings.LOGIN_REDIRECT_URL是什么?

此外,如果有人可以举例说明如何使用通用视图进行身份验证,那将会非常有用,但如果没有,那很好,只要上面的问题得到回答。我知道他们提供了一个模板示例,但我想要一个如何创建实际视图并使用它的示例。

4

1 回答 1

2

假设您的urls.py外观与此类似:

from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template

urlpatterns = patterns('',
    url(r'^$', 'mywebsite.index', name='index'),
    url(r'^login/$', 'django.contrib.auth.views.login', name='login'),
    url(r'^logout/$', 'django.contrib.auth.views.logout_then_login', name='logout')
)

然后在您的设置文件中,输入如下内容:

LOGIN_REDIRECT_URL = 'index'
LOGIN_URL = 'login'
LOGOUT_URL = 'logout'

这将导致登录页面重定向到mywebsite.index视图(因为name='index'与此视图匹配,这就是我们在 中设置的内容LOGIN_REDIRECT_URL。)

我知道他们提供了一个模板示例,但我想要一个如何创建实际视图并使用它的示例。

“实际视图”由 django at 提供django.contrib.auth.views.login,因此您根本不需要创建视图。这就是您正在阅读的部分的重点。您提供模板,该模板发布到视图,然后视图重定向到LOGIN_REDIRECT_URL.

现在,当您使用@login_required装饰器时,django 将通过内置的 django 登录视图将用户重定向到您的登录模板。

于 2013-10-05T02:28:23.413 回答