Django问题:“ / myapp / accueil处的NoReverseMatch”

时间:2018-07-13 22:16:58

标签: django django-templates django-urls

我在网上搜索了一下,但似乎没有人遇到与我相同的问题,我的问题似乎“太简单了”,但我找不到错误。

我在Windows上使用最新版本的Django。我用一个名为“ myapp”的应用程序启动了一个名为“ tesutooo”的项目。 在项目的根目录下,我有一个名为“ templates /”的目录,用作其他目录的基础。 我的模板位于“ myapp / templates / myapp /”中

所以我的问题在“ tesutooo / templates / base.html”和“ tesutoo / myapp / templates / myapp / accueil.html”之间

这是我的代码:

tesutoo / tesutoo / urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.
    path('myapp/', include('myapp.urls')),
]

tesutoo / myapp / urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('accueil', views.accueil),
    path('date', views.date),
]

tesutoo / myapp / views.py

from django.http import HttpResponse
from django.shortcuts import render
from datetime import datetime

def accueil(request):
    return render(request, 'myapp/accueil.html')

def date(request):
    return render(request, 'myapp/date.html', {'date': datetime.now()})

tesutoo / templates / base.html

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8"/>
    <link rel="stylesheet" href="base.css" />
    <title>{% block title %}Mon projet Django ou je fais un peu c'que j'veux mdr{% endblock %}</title>
</head>
<body>
<header>Mon projet qui déchire sa cera</header>
    <nav id="nav_gen">
            {% block nav %}
            <ul>
                <a href="{% url 'myapp.views.accueil' %}">Accueil</a>
            </ul>
            <ul>
                <a href="{% url 'myapp.views.date' %}">Date</a>
            </ul>
            <!-- <ul>
                <a href="{% url "Bibliothèque" %}">Bibliothèque</a>
            </ul> -->
        {% endblock %}
    </nav>
    <section id="content">
            {% block content %}{% endblock %}
    </section>
<footer>&copy; Projet de guigui</footer>
</body>
</html>

tesutooo / myapp / templates / myapp / accueil.html

{% extends "base.html" %}
{% block title %} My app mon gars ! Accueil{% endblock %}
{% block content %}
<div>
    <p>C'est l'accueil ici ! Regarde à gauche y a des dauphins ! Euh... des liens !</p>
</div>
{% endblock %}

这是回溯: A screenshot of the error

2 个答案:

答案 0 :(得分:0)

将名称空间添加到包含

urlpatterns = [
    path('admin/', admin.site.urls),
    path('myapp/', include('myapp.urls', namespace='myapp')),
]

在特定视图中添加名称:

urlpatterns = [
    path('accueil', views.accueil, name='accueil'),
    path('date', views.date, name='date'),
]

然后使用{%url <namespace>:<name> %}来使用它,例如,

{% url 'myapp:accueil' %}

答案 1 :(得分:0)

必须在模板动态网址中使用

{% url 'myapp:accueil' %}

因为这是伊兰先生在其他答案中描述的会议。

,您必须在应用程序URL tesutoo / myapp / urls.py 中使用app_name = 'your_app_name',其代码将类似于

from django.urls import path
from . import views

app_name='myapp'
urlpatterns = [
    path('accueil', views.accueil),
    path('date', views.date),
]