TemplateDoesNotExist at / accounts / login / error

时间:2017-01-18 14:28:47

标签: python django

我收到了一个错误:

  

/ accounts / login / registration / login.html上的TemplateDoesNotExist。

我想我应该创建login.html文件,但在Django中可能不需要默认的beahivor。

我将login.html放入帐户/模板/帐户后,错误并没有消失。我接下来该怎么办?

我在urls.py中写道,

from django.conf.urls import url
from django.contrib.auth.views import login, logout

urlpatterns = [
    url(r'^login/$', login,
        name='login'),
    url(r'^logout/$', logout, name='logout')
]

在父应用的urls.py中,

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

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^accounts/', include('accounts.urls')),
    url(r'^api/', include('UserToken.urls')),

]

在父应用的settings.py的TEMPLATES中

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

我在吹风机中找到了, emplate-loader postmortem

Django尝试按以下顺序加载这些模板:

使用引擎django: django.template.loaders.app_directories.Loader:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/admin/templates/registration/login.html(来源不是存在) django.template.loaders.app_directories.Loader:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/templates/registration/login.html(来源不是存在)

我想也许我应该制作模板文件夹。 现在,我创建了一个像accounts / registration / accounts / login.html这样的目录。 我无法理解为什么错误显示管理员和授权的2种方式目录。我应该创建admin& auth目录吗?

3 个答案:

答案 0 :(得分:2)

对我来说,加入了:

 'DIRS': [os.path.join(BASE_DIR, 'templates')],

注意删除浏览器缓存。

答案 1 :(得分:0)

错误消息中的路径名在 login / 之后显示空格字符 - 这可能不包含在实际文件名中,因此无法找到文件。在一种情况下,它是一个普通的空间,在另一种情况下,它是一个Unicode'IDEOGRAPHIC SPACE'(U + 3000)。我没有在源代码中看到它的来源。

答案 2 :(得分:0)

检查所有文件夹的名称,并输入与我相同的错误。 我错误地放了模板而不是模板。 Django默认使用template文件夹,而不只是template或任何其他名称。 这解决了我的问题。