URL-адреса шаблонов Django и NoReverseMatch - PullRequest
0 голосов
/ 19 сентября 2019

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

<h1><a href="addNums">New Message</a></h1>

, но если я скажу это так, как подсказывает учебник, я получу ошибку NoReverseMatch

<h1><a href="{% url 'addNums' %}">New Message</a></h1>

У меня есть URL, настроенные так:

urlpatterns = [
    path('addNums/', add) 
]

Что здесь происходит?Какая разница в семантике между двумя методами?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

{% url ... %} ищет путь с именем 'addNums', поэтому вы должны указать имя в вашем urls.py:

urlpatterns = [
    path('addNums/', add<b>, name='addNums'</b>) 
]

Основная идея {% url ... %} предназначен для получения URL-адреса, так что если вы позже передумаете на пути, сгенерированный URL-адрес также изменится.

0 голосов
/ 19 сентября 2019

вам нужно указать имя URL

попробуйте это

app_name = 'my-app'

urlpatterns = [
    path('addNums/', add, name='my-url') 
]

в шаблоне

<h1><a href="{% url 'my-app:my-url' %}">New Message</a></h1>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...