我一直在尝试创建一个新项目。我在项目中使用的技术是Python 3.8和Django。我只是被一个错误卡住了,我不能前进。这是我在运行带有python3 manage.py runserver
的服务器时得到的错误
raise TemplateDoesNotExist(','.join(template_name_list),chain=chain)django.template.exceptions.TemplateDoesNotExist:[2019 - 03 - 25] 2019 - 03 - 25 00:01:00] 2019 - 03 - 25 00:00:00
我相信这意味着我无法访问我创建的模板。我在我的“用户应用程序”下创建了一个“模板”文件夹。templates文件夹的根目录与我的项目应用程序位于同一根目录中。我像这样更新了我的项目设置模板:
'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在项目文件夹中更改www.example.com,我已经这样做了,但它没有解决我的问题。你能帮我解决这个问题,继续我的项目?先谢谢你。
2条答案
按热度按时间roejwanj1#
try:template_name='<your_model_name>/home.html'
goqiplq22#
你的应用程序结构是什么,因为这行
'DIRS': [os.path.join(BASE_DIR, 'templates')],
不应该是静态的。为了解决我的问题,我不得不像这样指定模板文件夹的位置。'DIRS': [os.path.join(BASE_DIR, 'app/templates')],