/ / Таг за шаблон на URL адрес повдига NoReverseMatch грешка, но генерираният URL е правилен - python, django, django-views, template-engine

Маркерът на шаблона за URL адрес повдига грешка NoReverseMatch, но генерираният URL адрес е правилен - python, django, django-views, template-engine

Не мога да използвам {% url%} за генериране на URL адреси в шаблоните на Django. Получавам следната грешка:

Reverse for "category" with arguments "()" and keyword arguments "{"category_name_slug": ""}" not found. 1 pattern(s) tried: ["rango/category/(?P<category_name_slug>[\w\-]+)/$"]

Така използвам етикета:

{% url "rango:category" category_name_slug=category.slug %}

Това е относителната дефиниция на url ():

url(r"^category/(?P<category_name_slug>[w-]+)/$", views.category, name="category")

Смешното е, че ако използвам категория.документ за самоличност вместо шлаух тя работи, но разбира се генерираният URL адрес не е от никаква категория, тъй като в изгледа се очаква "slug", а не id.

Още по-странно, ако използвам етикета като

 {% url "rango:category" category_name_slug=category.slug as slug %}
{{ slug }}

тогава генерираният URL адрес е правилен и няма повдигнати грешки.

Четенето на грешката изглежда, че нищо не се предава като аргументи за ключови думи.

Някаква идея?

Отговори:

1 за отговор № 1

Ключовата част от съобщението за грешка е

"{"category_name_slug": ""}"

Това подсказва, че или не сте предали категорията на шаблона правилно, или имате категория, която няма набор от шлауги.

Казвате, че използвате category.id не предизвиква грешка, което означава, че предавате категорията на шаблона правилно.

Затова най-вероятно имате категория, която няма набор от шлауги. Проверете стойностите в базата данни.