Джанго Новичок: «Обратного не найдено» - PullRequest
22 голосов
/ 09 марта 2009

У меня есть строка в форме Django:

{% for aa in my_array %}

, который, кажется, вызывает эту ошибку:

Ошибка шаблона

Выявлено исключение при рендеринге: Обратный для 'dev_env.profiles.views.viewPlan' с аргументы '(' ',)' и ключевое слово аргументы '{}' не найдены.

Что на самом деле означает это сообщение об ошибке?

Я подозреваю, что либо строка верна, но сообщение об ошибке неверно. Или ошибка реальна, но эта строка - красная сельдь.

Что на земле я должен искать?

Обновление: Пауло отсортировал это ниже.

На самом деле у меня было {% url viewPlan planId %} пару строк (так что сообщенная строка ошибки была неправильной), но ошибка была вызвана, потому что planId был пуст в этом случае.

Ответы [ 2 ]

42 голосов
/ 09 марта 2009

У вас есть представление с именем viewPlan, с которым вы делаете что-то подобное в шаблоне:

{% url viewPlan %}

или что-то подобное в представлении:

reverse('viewPlan')

Если вы делаете это, и у вас нет строки, которая выглядит следующим образом:

url(r'^whatever/url/$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),

... в вашей конфигурации url я думаю, что это ошибка, которую вы получаете. В качестве альтернативы, и более вероятно, вы, вероятно, захватываете значение (может быть, id или что-то) в URL-адресе viewPlan, но не передаете аргумент при обращении URL. Поэтому, если вы собираете какие-либо значения в регулярном выражении, например:

url(r'^plans/(\d+)$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),

Вам нужно назвать это так:

{% url viewPlan 15 %}

Или вот так:

reverse('viewPlan', args=[15]);

Где 15, очевидно, соответствует ожидаемому захваченному значению.

3 голосов
/ 29 января 2018

У меня была такая же проблема. В моем случае я забыл добавить URL для дочернего приложения в основной файл urls.py:

urlpatterns = [
    re_path("admin/", admin.site.urls),
    re_path(r"^core/", include("core.urls")),
    re_path(r"^$", welcome, name="welcome")
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...