У меня есть проект с приложением под названием экзамены. Сейчас моя индексная страница является индексной страницей одного из этих приложений. Так что шаблоны URL-то вроде этого:Использование имени для шаблонов шаблонов django в django
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^', include('exams.urls', namespace="exams")),
)
Однако вполне возможно, что в будущем я хочу, чтобы создать новое представление для моей индексной страницы и изменить шаблоны URL-то вроде этого:
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^exams/', include('exams.urls', namespace="exams")),
url(r'^/$', 'mysite.views.index', name="index"),
)
Я хочу создать некоторые ссылки в моем шаблоне, чтобы указать, загружает ли приложение экзаменов или другое представление. Поэтому я попытался использовать аргумент name для метода url (например, выше), но, похоже, он не работает. Когда я использую {% url 'index' %}
в моем шаблоне возвращает следующее сообщение об ошибке:
Reverse for 'index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
UPD: Я забыл упомянуть, что я пытался использовать следующий код:
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^', include('exams.urls', namespace="exams"), name="index"),
)
И я получил ошибку, которую я написал выше.
UPD2: Для выяснения вопроса больше: Прямо сейчас, когда я иду в http://mydomain/
я буду видеть мой индекс приложения. Но, возможно, в будущем мне нравится менять мою индексную страницу и использовать другое представление для ее создания. Поэтому, когда я перехожу на http://mydomain/
, я увижу страницу, представленную этим представлением, и перейдя на http://mydomain/exams
. Я увижу страницы индексов приложений. В этом случае мой urls.py будет sth, как второй код, который я написал выше, в котором я могу легко ссылаться на индексную страницу с помощью тега {% url 'index' %}
. Однако на данный момент я использую код, который я написал в своем первом обновлении. Я хочу, чтобы мои шаблоны отображали {% url 'index' %}
в качестве ссылки на мою индексную страницу (вместо использования {% url 'exams:index' %}
, поэтому, когда я позже изменю код urls.py, мне не придется менять все мои шаблоны.
взгляните на этот вопрос, это может помочь. http: // stackoverflow.com/questions/22473390/how-to-use-django-template-tag-url-with-django-1-6 – ancho
Представляет ли ваш mysite.views.index второй аргумент, т. е. 'def index (request, other_arg) : '...? – Raphael
@ Raphael: На самом деле у меня нет mysite.views.index прямо сейчас, но я планирую создать его. Но пока я не хочу, чтобы мой индекс был моей индексной страницей приложения. – Matrix