是否可以通过编写自己的模板来实现django登录身份验证?

时间:2015-07-24 09:49:28

标签: django django-urls django-authentication

我的项目是urls.py:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url('^', include('django.contrib.auth.urls')),
]

并且,我的应用网址是:

from django.conf.urls import include, url


urlpatterns = [
    url(r'^login/$', django.contrib.auth.views.login, {'template_name': 'login.html'}, name='login'),
    url(r'^logout/$', django.contrib.auth.views.logout, {'template_name': 'logout.html'}, name='logout'),
]

我正在学习django身份验证。在阅读了一些文档后,我制作了一个示例应用程序,并尝试在其上实现django身份验证系统。

这些内置视图是否有内置的django模板。我在没有编写自己的模板的情况下尝试了它,但它抛出了异常。当我添加登录模板时,它可以正常工作。

是否可以通过编写自己的'login.html'模板来实现django身份验证? django真的有内置的吗?如果是,那么我如何将其包含在我的应用程序中?

谢谢!提前

1 个答案:

答案 0 :(得分:1)

不,Django没有登录模板。来自authentication docs

  

您有责任为登录模板提供html,默认情况下称为registration / login.html。

如果Django带有登录模板,它可能看起来很基本。 Django不了解模板结构,因此无法从您的基本模板继承。因此,大多数人最终都会创建自定义登录模板。但是,如果Django包含一个模板,那么对于新用户来说会更容易,无论它看起来如何。

请注意,authentication docs包含您可以使用的示例模板。

顺便说一下,您应该包含' django.contrib.auth.urls',或者为您的应用的网址添加登录和退出条目(这样您就可以覆盖模板名称)。你不需要同时做这两件事。