Кажется, я знаю, где проблема, так как я могу обойти ее, но чтобы обойти ее, я должен пожертвовать той функцией, которую я действительно хочу сохранить.NoReverseMatch при рендеринге страницы
Вот соответствующий код в нерабочем состоянии:
{% if sections %}
{% for item in sections %}
<a class="sections" href="{% url 'sections:generate' item.section.slug %}">{{ item.section.title }}</a>
{% for subsection in item.subsections %}
<p>{{ subsection.title }}</p>
{% endfor %}
{% endfor %}
{% else %}
<p>Error retrieving sections or no sections found</p>
{% endif %}
Проблема часть выше в теге ссылки. Позвольте мне объяснить, показывая связанный view.py:
def index(request):
sections = Section.objects.all()
context = {
'sections': [],
}
for section in sections:
context.get("sections").append(
{
'section': section,
'subsections': get_subsections(section),
}
)
return render(request=request, template_name='index.html', context=context)
Так, «секция» является итерацией списка элементов, содержащей для каждых элементов словаря с двумя входами. Один, раздел и один подраздел. Для каждого раздела есть несколько подразделов, это то, чего я действительно хочу достичь.
Обычно, если не разбираться в подразделах и просто перебирать список разделов, это нормально. Код шаблона для этого будет выглядеть примерно так:
{% for section in sections %}
<a href="{% url 'sections:generate' section.slug %}">{{ section.title }}</a>
{% endfor %}
ПРИМЕЧАНИЕ! Код выше работает просто отлично! Но как только я добавляю «разделы» в список словарей и должен ссылаться на slug по item.section.slug, страницы останавливают рендеринг.
Просьба сообщить.
Что печатается, если у вас нет URL-адрес метки, чтобы вызвать исключение? (Идеально добавить 'item.section.slug', который будет отображаться также) – yummies