Django 3 - NoReverseMatch - PullRequest
       7

Django 3 - NoReverseMatch

0 голосов
/ 04 августа 2020

Я как-то новичок в Django и не знаю, как исправить то, что кажется простой ошибкой. Многие люди задавали здесь более или менее тот же вопрос, но любые их исправления помогли мне.

Итак, у меня есть 2 приложения, одно из которых будет работать как главное меню для других приложений:

Главное меню urls.py:

re_path(r'^elec/boq/', include('a0101_boq_elec_main.urls', namespace="SAMM")),

Затем в urls.py этого приложения у меня есть следующее:

app_name='BoqElecMM'
urlpatterns = [
        path('', views.boq_index.as_view(), name='boqIndex'),
        path('search/', views.SearchResultView.as_view(), name='searchResult'),
        path('<int:boq_project_id>', views.BoqProjectInfo.as_view(), name='BPInfo'),
]

Но когда я пытаюсь использовать это в своем шаблоне : <a href="{% url 'BoqElecMM:BPInfo' %}">, у меня такая Django ошибка:

NoReverseMatch в / elec / boq / Reverse для 'BPInfo' не найден. «BPInfo» не является допустимой функцией представления или именем шаблона.

Не могли бы вы сказать мне, пожалуйста, что я здесь делаю не так? Заранее благодарю

1 Ответ

0 голосов
/ 04 августа 2020

Вам необходимо передать значение для параметра boq_project_id, например,

{% url 'BoqElecMM:BPInfo' <b>boq_project_id=42</b> %}

Конечно, значение, которое вы передаете в boq_project_id, обычно является идентификатором объекта project. Так, например, если в вашем шаблоне есть объект project, вы можете написать:

{% url 'BoqElecMM:BPInfo' <b>boq_project_id=project.pk</b> %}

, если у вас также есть namespace=…, тогда это также должно быть префиксом, поэтому с данными на ваш взгляд, это:

{% url '<b>SAMM:BoqElecMM:</b>BPInfo' boq_project_id=project.pk %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...