2009-06-20 5 views
35

Очень простой вопрос, но у меня проблемы с поиском ответа в Интернете. У меня есть шаблон, который я хочу связать с сайтом администратора django (т. Е. Localhost: 8000/admin). Что такое код для этого?Ссылка на сайт администратора django

Я что-то вроде

<a href="{% url admin.site.root %}">link to admin panel</a> 

Однако воображение, когда я пытаюсь выше фрагмент кода я получаю:

Caught an exception while rendering: 
    Reverse for 'project_name.django.contrib.admin.sites.root' with 
    arguments '()' and keyword arguments '{}' not found. 

Помощь?

ответ

8

В какой версии django вы используете? Если вы используете багажник, изменить администратора urlpatterns из:

(r'^admin/(.*)', admin.site.root) 

к:

('^admin/', include(admin.site.urls)) 

И тогда вы получите именованный шаблон URL под названием «admin_index», которую вы можете ссылаться. См

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#reversing-admin-urls

для получения дополнительной информации

+0

имя URL является «администратора: index ' – amchugh89

62

Try, что предполагает Oggy, но затем использовать ':' вместо '_' с текущей Джанго:

<a href="{% url 'admin:index' %}">link to admin panel</a> 
+0

Это сделало трюк для меня. С Django 1.3 использование 'admin_index' дало мне« TemplateSyntaxError »:« Caught NoReverseMatch при рендеринге: обратное для «admin_index» с аргументами «()» и аргументы ключевого слова «{}« не найдено ». Вместо этого используется' admin: index' предоставил рабочий URL-адрес администратора. –

+6

Для всех, кто приходит из Google, Django 1.5+ это '{% url" admin: index "%}', с кавычками –

+0

Если вы хотите установить ссылку на подстраницу сайта администратора, см. [Этот ответ] (https: //stackoverflow.com/a/2930241/7221965) –

Смежные вопросы