#html #django #django-models #django-templates #django-urls
#HTML #django #django-модели #django-шаблоны #django-urls
Вопрос:
У меня эта ошибка:
«NoReverseMatch в /home/2 / Reverse для ‘calendar_new’ с аргументами ‘(«,)’ не найден. попробовано 1 шаблон (ы): [‘home/(?P<group_id>d )/calendar/new/$’]«
в кнопке. В ulr у меня есть параметр «group_id», который мне нужно использовать в качестве параметра фильтра. Я не понимаю, что не так, потому что, если я напишу путь вручную в URL, у меня не возникнет никаких проблем, и страница откроется правильно. «group_id» уже является параметром, присутствующим в URL.
В calendar.html:
<div class="cover-container d-flex w-100 h-100 p-3 mx-auto flex-column">
<main class="inner cove border" role="main" style="background-color: white;">
<h1 class="cover-heading mt-3">Lista Calendari di {{ nome }}</h1>
<div class="mt-5">
<ul class="list-group">
{% for calendar in object_list %}
<a href="{{ calendar.id }}"><li class="list-group-item list-group-item-action">{{ calendar.name }}</li></a>
{% empty %}
<li class="list-group-item">Non ci sono calendari disponibili per questo edificio</li>
{% endfor %}
</ul>
</div>
</main>
<!-- NUOVO CALENDARIO -->
<a class="btn btn-primary btn-lg active mt-5 mb-5" href="{% url 'cal:calendar_new'%}">Aggiungi Calendario</a>
</div>
В urls.py:
url(r'^home/(?P<group_id>d )/$', views.CalendarsOfGroupView.as_view(), name='group_view'),
url(r'^home/(?P<group_id>d )/calendar/new/$', views.calendar, name='calendar_new'),
Комментарии:
1. вы должны передать параметр group_id в тег шаблона URL docs.djangoproject.com/en/3.1/topics/http/urls/#examples
2. Спасибо, я прочитал эту документацию, но не смог решить проблему. Теперь я пишу «href=»{% url ‘cal:calendar_new’ calendar.group.id %}»» но это не работает
3. Вы не показали представление, поэтому мы не знаем, как получить доступ
group_id
к шаблону. Пока удалите{% url %}
тег и попробуйте что-то вроде{{ calendar.group.id }}
, пока не выясните, как отображать идентификатор группы в шаблоне. Я думаю,{{ view.kwargs.group_id }}
должно сработать. Вы могли бы найти{% debug %}
тег шаблона или панель инструментов django debug полезными для подобных проблем.4. calendar.group.id там наверняка недоступен, поскольку календарь является переменной в цикле for, который закрывается до этого тега <a>, поэтому calendar.group.id там не существует, следовательно, та же ошибка
5. Большое вам спасибо за ваши ответы! Я решил это, написав следующее: «href=»{% url ‘cal:calendar_new’ view.kwargs.group_id %}» »
Ответ №1:
Предполагая, что у вас есть группа в контексте
<a class="btn btn-primary btn-lg active mt-5 mb-5" href="{% url 'cal:calendar_new' group.id %}">Aggiungi Calendario</a>
Поскольку для вашего URL требуется сопоставление параметра group_id
Комментарии:
1. Не работает! Я помещаю » href=»{% url ‘cal:calendar_new’ calendar.group.id %}» » но даже это не работает.