Django Newbie: & # 8220; Реверс не найден & # 8221;
-
05-07-2019 - |
Вопрос
У меня есть строка в форме Django:
{% for aa in my_array %}
который, кажется, вызывает эту ошибку:
Ошибка шаблона
Оказалось исключение при рендеринге: Обратный для 'dev_env.profiles.views.viewPlan' с аргументы '(' ',)' и ключевое слово аргументы "{}" не найдены.
Что на самом деле означает это сообщение об ошибке? Р>
Я подозреваю, что либо строка правильная, но сообщение об ошибке неверное. Или ошибка реальна, но эта строка - красная сельдь. Р>
Что я должен искать?
Обновление: Пауло отсортировал это ниже.
На самом деле у меня было {% url viewPlan planId%}
на расстоянии нескольких строк (так что сообщенная строка ошибки была неправильной), но ошибка была вызвана, потому что в этом случае planId был пуст . р>
Решение
У вас есть представление с именем viewPlan
, с которым вы делаете что-то подобное в шаблоне:
{% url viewPlan %}
или что-то подобное в представлении:
reverse('viewPlan')
Если вы делаете это, и у вас нет строки, которая выглядит следующим образом:
url(r'^whatever/url/
... в твоей конфигурации url я думаю, что это ошибка, которую ты получаешь. В качестве альтернативы, и более вероятно, вы, вероятно, захватываете значение (может быть, id или что-то) в URL-адресе viewPlan, но не передаете аргумент при обращении URL-адреса. Поэтому, если вы собираете какие-либо значения в регулярном выражении, например так:
url(r'^plans/(\d+)
Вы должны назвать это так:
{% url viewPlan 15 %}
Или вот так:
reverse('viewPlan', args=[15]);
Где 15
, очевидно, соответствует ожидаемому захваченному значению.
, 'dev_env.profiles.views.viewPlan', name="viewPlan"),
... в твоей конфигурации url я думаю, что это ошибка, которую ты получаешь. В качестве альтернативы, и более вероятно, вы, вероятно, захватываете значение (может быть, id или что-то) в URL-адресе viewPlan, но не передаете аргумент при обращении URL-адреса. Поэтому, если вы собираете какие-либо значения в регулярном выражении, например так:
<*>
Вы должны назвать это так:
<*>
Или вот так:
<*>
Где 15
, очевидно, соответствует ожидаемому захваченному значению.
, 'dev_env.profiles.views.viewPlan', name="viewPlan"),
Вы должны назвать это так:
<*>Или вот так:
<*> Где 15
, очевидно, соответствует ожидаемому захваченному значению.
... в твоей конфигурации url я думаю, что это ошибка, которую ты получаешь. В качестве альтернативы, и более вероятно, вы, вероятно, захватываете значение (может быть, id или что-то) в URL-адресе viewPlan, но не передаете аргумент при обращении URL-адреса. Поэтому, если вы собираете какие-либо значения в регулярном выражении, например так:
<*>Вы должны назвать это так:
<*>Или вот так:
<*> Где 15
, очевидно, соответствует ожидаемому захваченному значению.
Другие советы
У меня была такая же проблема. В моем случае я забыл добавить URL-адреса дочернего приложения в основной файл urls.py:
urlpatterns = [
re_path("admin/", admin.site.urls),
re_path(r"^core/", include("core.urls")),
re_path(r"^<*>quot;, welcome, name="welcome")
]