python - django 无法显示模板 - 如何修复
问题描述
我只是让应用程序用户验证已经在数据库中注册的用户。在项目目录(urls.py)中包含url,从app目录执行urls.py中的登录页面,在base.html中引用模板和链接。一切正常,但是当单击登录链接时返回此错误: TemplateDoesNotExist at users/login/
我试图根据树导航重命名路径,但总是返回同样的错误。知道发生了什么吗?
对不起我的英语
我的项目中的树导航是这样的: my_project
urls.py(项目):
from django.contrib import admin
from django.urls import include, path
app_name = ['app_web_gym', 'users']
urlpatterns = [
path('admin/', admin.site.urls),
path('users/', include('users.urls', namespace='users')),
path('', include('app_web_gym.urls', namespace='app_web_gym')),
]
urls.py(应用程序)
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views
app_name = 'users'
urlpatterns= [
path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
]
base.html:
<p>
<a href="{% url 'app_web_gym:index' %}">Web Gym</a>-
<a href="{% url 'app_web_gym:clientes' %}">Clientes</a>-
<a href="{% url 'app_web_gym:treinos' %}">Treinos</a>-
<a href="{% url 'app_web_gym:instrutores' %}">Instrutores</a>-
{% if user.is_authenticated %}
<p>Hello, {{user.username}}.<p/>
{% else %}
<a href="{% url 'users:login' %}">Login</a>
{% endif %}
</p>
{% block content %} {% endblock content %}
登录.html:
{% extends 'app_web_gym/base.html' %}
{% block content %}
{% if form.errors %}
<p>Wrong username/password. Try again.</p>
{% endif %}
<form method='POST' action="{% url 'users:login' %}">
{% csrf_token %}
{{form.as_p}}
<button name='submit'>Log in</button>
<input type='hidden' name='next' value="{% url 'app_web_gym:index' %}" />
</form>
{% endblock content %}
我打印了完整的错误: TemplateDoesNotExist
我注意到说Django 尝试在最后一行按此顺序加载这些模板->
/home/at_admin/prj01/app_web_gym/templates/users/login.html(来源不存在)
那是 login.html 的错误路径,正确的是
/home/at_admin/prj01/users/templates/users/login.html如树形导航所示。我不知道为什么会发生这种情况,也不知道如何解决。
解决方案
首先,您应该检查该应用程序是否已安装在您的设置中。正如它在错误中看到的那样,文件被查看到了错误的位置(app_web_gym/users/login.html)而不是(users/login.html)。所以我想你在 settings.py 中安装你的应用程序时犯了一个错误。
推荐阅读
- python - 如何从文件中获取输出以在元素之间使用逗号?
- processing - 如何在 ProcessingJS 中绘制星形
- kubernetes - Kubernetes 端口转发 - 连接被拒绝
- lua - 在 Lua 中,a, b = foo() 是什么意思?
- javascript - 悬停在 chrome 上工作正常,但在 safari 上,悬停时显示的 div 显示在第一个 div 旁边?
- excel - 停止 Excel 表单自动将日期时间转换为数字
- javascript - 如何从不同的 JS 文件访问 EJS 文件中的变量
- html - 左列图像垂直对齐
- python - 创建并附加到列表字典?
- c++ - 使用图像作为纹理时,OpenGL 输出无法正确显示