我正在尝试按照此链接执行操作: https://docs.djangoproject.com/en/1.5/topics/auth/default/#django.contrib.auth.views.login
所以在上面提供的链接中,它谈到“URL name:login”,在可选参数中说:
“redirect_field_name:包含要在登录后重定向到的URL的GET字段的名称。如果传递给定的GET参数,则覆盖next。”
如何指定下一步是什么?如果向下滚动一点,就会显示
“...视图重定向到next中指定的URL。如果未提供next,则重定向到settings.LOGIN_REDIRECT_URL”。
如何指定下一个是什么以及settings.LOGIN_REDIRECT_URL
是什么?
此外,如果有人可以举例说明如何使用通用视图进行身份验证,那将会很有帮助,但如果没有,那就没问题了,只要上面的问题得到解答。我知道他们给出了一个模板示例,但我想要一个如何创建实际视图并使用它的示例。
答案 0 :(得分: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在django.contrib.auth.views.login
提供,因此您根本不需要创建视图。这就是你正在阅读的部分的重点。您提供模板,该模板发布到视图,然后视图重定向到LOGIN_REDIRECT_URL
。
现在,当您使用@login_required装饰器时,django会通过内置的django登录视图将用户重定向到您的登录模板。