我面临一个问题。我正在尝试使用Django实现login/logup
应用程序,但在登录页面中我收到以下错误。
TemplateDoesNotExist at /login/
login.html
Request Method: GET
Request URL: http://127.0.0.1:8000/login/
Django Version: 1.11.2
Exception Type: TemplateDoesNotExist
Exception Value:
login.html
Exception Location: /usr/local/lib/python2.7/dist-packages/django/template/loader.py in select_template, line 53
Python Executable: /usr/bin/python
Python Version: 2.7.6
我正在解释下面的login.html
页面。
{% extends 'base.html' %}
{% block title %}Login{% endblock %}
{% block content %}
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
{% endblock %}
urls.py:
from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.views.generic.base import TemplateView
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
url(r'^login/$', auth_views.login, {'template_name': 'login.html'}, name='login'),
url(r'^logout/$', auth_views.logout, {'template_name': 'logged_out.html'}, name='logout'),
]
请帮我解决此错误。
答案 0 :(得分:0)
在settings.py中设置模板目录路径
os.path.join(BASE_DIR,&#39; templates&#39;)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.template.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
您的项目结构:
project
|---- project
|---- templates
|----- static
答案 1 :(得分:0)
我认为您需要在settings.py
中设置模板DIRS,如下所示:
TEMPLATES = [
{
...
'DIRS': [os.path.join(BASE_DIR, 'templates/ariticle'), ], # define your template dir
...
},
]