【发布时间】:2020-10-25 00:46:00
【问题描述】:
我一直在尝试创建一个新项目。我用于该项目的技术是 Python 3.8 和 Django。我刚刚遇到一个错误,我无法继续前进。
这是我使用python3 manage.py runserver 运行服务器时遇到的错误
提高 TemplateDoesNotExist(', '.join(template_name_list), chain=chain) django.template.exceptions.TemplateDoesNotExist: home.html [25/Oct/2020 00:15:56]“GET / HTTP/1.1”500 73916
我相信这意味着我无法访问我创建的模板。 我在“用户应用”下创建了一个“模板”文件夹。 模板文件夹的根目录与我的项目应用程序位于同一根目录中。 我像这样更新了我的项目设置模板:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
我的项目文件夹中路径的 URL:
urlpatterns = [
path('admin/', admin.site.urls),
path('users/',include('users.urls')),
path('users/',include('django.contrib.auth.urls')),
path('',TemplateView.as_view(template_name='home.html'),name='home'),
]
我的用户应用 urls.py:
from django.urls import path
from .views import SignUpView
urlpatterns=[
path('signup/', SignUpView.as_view(),name='signup'),
]
home.html 看起来像这样:
{% extends 'base.html' %}
{% block title %} Home {% endblock title %}
{% block content %}
{% if %}
{% if user.is_authenticated %}
Welcome {{user.username}}!
<p><a href="{% url 'logout' %}">Exit</a></p>
{% else %}
<p>You are not logged in!!!</p>
<p><a href="{% url 'login' %}">Log in</a></p>
<p><a href="{% url 'signup' %}">Register</a></p>
{% endif %}
{% endblock content %}
view.py 看起来像这样:
from django.shortcuts import render
from django.urls import reverse_lazy
#from django.http import HttpResponse
from django.views.generic import CreateView
from .forms import CustomUserCreationForm
# Create your views here.
class SignUpView(CreateView):
form_class=CustomUserCreationForm
success_url=reverse_lazy('login')
template_name="signup.html"
我在 StackOverflow 上寻找解决方案,他们大多提到更改项目文件夹中的 settings.py,我已经这样做了,但它并没有解决我的问题。您能帮我解决这个问题以继续我的项目吗?提前致谢。
【问题讨论】: