如何使用Django';要进行身份验证的通用视图
我正试着按照它在这个链接中所说的去做: 因此,在上面提供的链接中,它谈到了“URL name:login”,在可选参数中,它说: “redirect_field_name:登录后包含要重定向到的URL的GET字段的名称。如果传递给定的GET参数,则覆盖next。” 如何指定下一步是什么?如果你再向下滚动一点,它会显示 “…视图重定向到next中指定的URL。如果未提供next,则重定向到settings.LOGIN\u REDIRECT\u URL” 如何指定下一步是什么以及如何使用Django';要进行身份验证的通用视图,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我正试着按照它在这个链接中所说的去做: 因此,在上面提供的链接中,它谈到了“URL name:login”,在可选参数中,它说: “redirect_field_name:登录后包含要重定向到的URL的GET字段的名称。如果传递给定的GET参数,则覆盖next。” 如何指定下一步是什么?如果你再向下滚动一点,它会显示 “…视图重定向到next中指定的URL。如果未提供next,则重定向到settings.LOGIN\u REDIRECT\u URL” 如何指定下一步是什么以及设置。登录\u重定
设置。登录\u重定向\u URL
是什么
另外,如果有人能给出一个如何使用泛型视图进行身份验证的示例,那将是非常好和有用的,但如果没有,那也没关系,只要上面的问题得到了回答。我知道他们给出了一个模板示例,但我想要一个如何创建实际视图并使用它的示例。假设您的
url.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\u redirect\u URL
中设置的)
我知道他们给出了一个模板示例,但我想要一个如何创建实际视图并使用它的示例
django在django.contrib.auth.views.login上提供了“实际视图”,因此您根本不需要创建视图。这就是你正在阅读的部分的全部要点。您提供模板,该模板发布到视图,然后视图重定向到LOGIN\u REDIRECT\u URL
现在,当您使用decorator时,django将通过内置的django登录视图将用户重定向到您的登录模板。Hm好的,如果我想在表单无效时重定向到URL/如果用户名与密码不匹配,我将在哪里指定重定向到哪里?我刚刚查看了django.contrib.auth.views.login,其中有一个if form.is_valid()语句,但如果它无效,则没有其他语句。。我是否应该将其添加到视图中,说如果它无效,然后重定向到另一个url?@user2817200如果它无效,它将返回到带有相应表单错误的登录页面,这是您(通常)想要的。