Почему встроенный тег url в Django вызывает ошибку при запуске модульных тестов? - PullRequest
0 голосов
/ 09 июля 2009

В моих шаблонах Django у меня есть пара фрагментов кода, которые выглядят примерно так:

<a href="{% url root %}">Root</a>

Они корректно работают при рендеринге шаблона. Однако всякий раз, когда я запускаю свои модульные тесты с использованием среды модульного тестирования Django, я получаю следующую ошибку:

NoReverseMatch: обратное для mysite.root с аргументами () и аргументами ключевых слов {} не найдено.

Корень правильно назван в urls.py (url(r'^$', 'index', name='root')), и, опять же, ошибка не отображается при просмотре сайта - только во время модульных тестов.

Если я изменю код на это:

{% url root as root_path %}
<a href="{{ root_path }}">Root</a>

ошибка также исчезает. В чем проблема с первым фрагментом кода?

1 Ответ

0 голосов
/ 09 июля 2009

Очевидно, что тесты на самом деле провалились, потому что Django не смог найти запись сайта в базе данных. Это может быть потому, что для моего SITE_ID установлено что-то отличное от 1; предположительно это было исправлено, как упоминалось в этом билете , но на самом деле это не исправлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...