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')),

]

网址.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'),

]

基础.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如树导航所示。我不知道为什么会这样,也不知道如何解决。


蓝山帝景
浏览 168回答 3
3回答

萧十郎

您是否已在主 settings.py 中注册您的应用程序?当您忘记注册您的应用程序时,有时会发生在主 settings.py 文件中:在末尾,再添加一行INSTALLED_APPS =['appname'](将 appname 替换为具有登录页面的应用程序的名称)

回首忆惘然

大家好,我刚刚删除了所有应用程序用户,并使用我之前复制的相同编码重新创建了它。这次成功了,但仍然不知道发生了什么。

九州编程

首先,您应该检查您的设置中是否安装了该应用程序。正如它在错误中所看到的那样,文件被看错了地方(app_web_gym/users/login.html)而不是(users/login.html)。所以我想你在 settings.py 中安装你的应用程序时犯了一个错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python