Django:身份验证系统的模板搜索顺序(创建我自己的身份验证模板)

时间:2016-04-13 21:23:31

标签: django templates authentication

我正在使用Django的默认身份验证系统(v1.8.12),但我想创建自己的模板(实际上根据文档django.contrib.auth不提供任何模板)。

然后我添加了文件夹' registration'在'模板内我的应用程序的文件夹' mainApp'。根据文档,这是一个正确的位置,一个名为' registration'。

的文件夹

我还创建了模板' login.html',此模板已正确加载到已定义的网址' ... account / login'。

问题在于其他模板:

  • logged_out.html
  • password_change_done.html
  • password_change_form.html
  • password_reset_complete.html
  • password_reset_confirm.html
  • password_reset_done.html
  • password_reset_email.html
  • password_reset_form.html

之前的模板已从“管理员”中加载。应用程序,而不是我的应用程序。

我如何告诉Django我的注册'应该加载模板而不是管理应用程序中定义的模板吗?

我的项目url.py是

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

我的模板设置是默认设置

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'debug': True,
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

1 个答案:

答案 0 :(得分:1)

只需在mainApp设置中将django.contrib.admin移到INSTALLED_APPS之上,以便Django首先搜索mainApp/templates目录。

这样,您无需在mainApp/templates设置中添加DIRS