NoReverseMatch:找不到“”的反向字符。 ''不是有效的视图函数或模式名称

时间:2019-03-22 23:27:07

标签: django python-3.x

请帮助我!

对不起,我的英语不好,我的英语不好!

我正在尝试访问此页面192.168.56.102 / project / BP / 4,它向我显示此味精错误! 与其他页面相同的url和视图配置可以正常工作。

Reverse for '' not found. '' is not a valid view function or pattern name.
Request Method: GET
Request URL:    http://192.168.56.102/project/BP/4
Django Version: 2.1.7
Exception Type: NoReverseMatch
Exception Value:    
Reverse for '' not found. '' is not a valid view function or pattern name.

urls.py:

urlpatterns = [
    #Project : 
    path('', views.projects , name = 'project'),
    path('BP/<int:id_project>', views.tb_project , name='tb_project'),
    path('add/', views.add_project , name = 'add_project'),
    path('delete/p/<int:id_project>',views.delete_project , name='delete_project'),
    path('edit/<int:id_project>' , views.edit_project , name = 'edit_project'),
    #Zone Action : 
    path('zone/<int:id_project>/' , views.list_zones , name ='list_zone'),
    path('zone/add/<int:id_project>/' , views.add_ZoneAction , name = 'add_zone'),
    path('delete/z/<int:id_project>/<int:id_zone>',views.delete_zone , name='delete_zone'),
    path('zone/edit/<int:id_zone>' , views.edit_ZoneAction , name = 'edit_zone'),
]

views.py:

def tb_project(request,id_project):
    template ="project/bord_project.html"
    context = {}
    prj = get_object_or_404(project ,id = id_project)
    context["prj"] = prj
    return render(request, template ,context)

page.html

<a href="{% url 'tb_project' element.id %}"> 
<!-- element.id = 4 -->

该链接正确显示在页面192.168.56.102/project/BP/4中,但是当我单击以转到bord_project.html时,我看到了一条错误消息!

Page.html:
list_tuple是上下文变量

{% extends "base.html" %}
{% load static %}

{% block contenu %}

    <div class="container">

        {% for elements in list_tuple  %}

        <div class="row" style="margin-top : 10px;">

            {% for element in elements %}

            <div class = "col-4">
                <div class="card text-center">
                    <div class="card-header">
                        Projet
                    </div>
                    <div class="card-body">
                        <h5 class="card-title">

                            {{ element.intitule }}
                        </h5>
                        <p class="card-text">

                            {{ element.description|truncatewords:7 }}
                        </p>
                        <a href="{% url 'tb_project' element.id %}" class="btn btn-info">

                            {# link #}
                            Plus &raquo;
                        </a> 
                    </div>
                    <div class="card-footer text-muted">

                        {{ element.date }}
                    </div>
                </div>
            </div>

            {% endfor %}

        </div>

        {% endfor %}

    </div>  

目前bord_project.html为空白

{% extends "base.html" %}
{% load static %}

{% block contenu %}
  {# blank for the moment #}
{% endblock %}

1 个答案:

答案 0 :(得分:1)

我认为问题不在于您粘贴的任何代码中。您应该运行$ grep -r -E "reverse|url" .或类似的搜索命令来查找可能缺少的所有网址解析。

在某个地方,您有一个reverse[_lazy]函数调用或url模板标记正在执行错误的查找。

请确保url模板标签的任何使用都在视图名称周围使用引号。