NoReverseMatch: обратное значение для '' не найдено.'' не является допустимой функцией просмотра или именем шаблона - PullRequest
1 голос
/ 23 марта 2019

Помогите мне, пожалуйста!

Извините за мой английский, я слаб в английском!

Я пытаюсь посетить эту страницу 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 Ответ

1 голос
/ 23 марта 2019

Я не верю, что проблема в любом коде, который вы вставили.Вы должны запустить $ grep -r -E "reverse|url" . или подобную команду поиска, чтобы найти любые разрешения URL, которые могут отсутствовать.

Где-то у вас есть вызов функции reverse[_lazy] или url templatetag, который выполняет плохой поиск.

Убедитесь, что при использовании тега url используются кавычки вокруг имени представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...