我收到了一个错误:
/ 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目录吗?
答案 0 :(得分:2)
对我来说,加入了:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
注意删除浏览器缓存。
答案 1 :(得分:0)
错误消息中的路径名在 login / 之后显示空格字符 - 这可能不包含在实际文件名中,因此无法找到文件。在一种情况下,它是一个普通的空间,在另一种情况下,它是一个Unicode'IDEOGRAPHIC SPACE'(U + 3000)。我没有在源代码中看到它的来源。
答案 2 :(得分:0)
检查所有文件夹的名称,并输入与我相同的错误。 我错误地放了模板而不是模板。 Django默认使用template文件夹,而不只是template或任何其他名称。 这解决了我的问题。