首页 > 解决方案 > 如何扩展 django.contrib.auth 视图?

问题描述

我如何安排模板:我已将我login.html的模板放在/templates/registrationDjango 文件夹中。因此,Django 会根据请求对accounts/loginaccounts/logouturl 请求和呈现进行必要的处理。而且我没有为个人loginlogout功能编写代码。

我要实现的目标:我想在登录请求时对用户进行身份验证,当他们请求登录页面时:

我想在views.pyurls.py而不是在模板中通过以下方式实现这一点:

{% if user.is_authenticated %}
{% if user.is_anonymous %}

网址.py

from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views
urlpatterns=[
                    url(r'^register/$', views.register, name='register'),
                    url(r'^logout/$', auth_views.logout, {'next_page' : 'Homepage'}, name='logout'),
]

标签: django

解决方案


提供LOGIN_REDIRECT_URL = '/'settings.py. 然后使用以下 url 登录页面:

urlpatterns = [
    url(r'^login/',
        auth_views.LoginView.as_view(redirect_authenticated_user=True),
        name='login'),
]

如果他们在通过身份验证后尝试登录,这会将您的用户重定向到设置文件中提供的 URL。


推荐阅读