Ответ 1
ВАЖНО: это было для django 1.4. В django 1.5 это как раз наоборот.
попробуйте использовать имена URL без кавычек
{% url show %}
не этот
{% url 'show'%}
Я пытался использовать тег шаблона url в django, но не повезло,
Я определил свой urls.py как это
urlpatterns = patterns('',
url(r'^analyse/$', views.home, name="home"),
url(r'^analyse/index.html', views.index, name="index"),
url(r'^analyse/setup.html', views.setup, name="setup"),
url(r'^analyse/show.html', views.show, name="show"),
url(r'^analyse/generate.html', views.generate, name="generate"),
Я определил шаблон url в моем представлении, подобном этому
{% url 'show'%}
то я получил это сообщение об ошибке
Показ исключения при рендеринге: Реверс для '' show '' с аргументами '()' и аргументы ключевого слова '{}' not найдено.
Оригинальный трассировка (последний звонок последний): Файл "/Library/Python/2.5/site-packages/django/template/debug.py", строка 71, в render_node result = node.render(контекст) Файл "/Library/Python/2.5/site-packages/django/template/defaulttags.py", строка 155, в рендеринге nodelist.append(node.render(контекст)) файл "/Library/Python/2.5/site-packages/django/template/defaulttags.py", строка 382, в рендеринге raise e NoReverseMatch: Обратный для '' show '' с аргументами '()' и аргументы ключевого слова '{}' не найдены.
Мне интересно, почему django не удалось отобразить? Каков правильный способ определить его в tempalte?
ВАЖНО: это было для django 1.4. В django 1.5 это как раз наоборот.
попробуйте использовать имена URL без кавычек
{% url show %}
не этот
{% url 'show'%}
Проблема заключается в ваших одиночных кавычках вокруг 'show'. Измените это на "показать", и это должно сработать для вас.
Смотрите здесь
Возможно, у вас есть некоторые представления, которые еще не реализованы. Похоже, что механизм шаблонов пытается найти все представления из шаблонов в urls.py, когда используется фильтр {% url...%}.
Обычно это показывает ошибку для вашего последнего шаблона в urls.py.
Попробуйте прокомментировать любой шаблон url, который вы еще не реализовали.
Также убедитесь, что вы используете полный путь:
{% url myapp.views.home %}
Фильтр шаблонов URL выглядит действительно неустойчивым. Постарайтесь сохранить будущую совместимость.
Возможно, вам потребуется немного конкретнее, какой вид вы пытаетесь использовать:
{% url appname.views.show %}
Ибо то, что стоит, у меня была такая же проблема, и пока я не помню причину, почему сейчас это разрешило это для меня. Пример из приложения SCRUM, над которым я работал.
url(r'^$', 'scrum.views.index', name='scrum-index'),