Как поместить ссылку / URL на домашнюю страницу веб-сайта в Django?
-
03-07-2019 - |
Вопрос
В шаблонах Django есть ли переменная в контексте (например {{ BASE\_URL }}
, {{ ROOT\_URL }}
, или {{ MEDIA\_URL }}
это можно использовать для ссылки на home
url-адрес проекта?
То есть.если Django запущен в корневом каталоге проекта, переменная (назовем ее R) {{ R }}
в шаблоне было бы /
.Если корневой URL-адрес является вложенной папкой http://host/X/
переменная {{ R }}
было бы /X/
(или http://host/X/
).
Это кажется до боли простым, но я не могу найти ответа.:) Спасибо вам!
Решение
Вы могли бы присвоить конфигурации URL, которую вы используете для обработки домашней страницы, имя и использовать это:
urls.py:
from django.conf.urls.defaults import *
urlpatterns = patterns('myproject.views',
url(r'^$', 'index', name='index'),
)
Шаблоны:
<a href="{% url index %}">...
Обновить: Более новые версии Django требуют заключения имени представления в кавычки:
<a href="{% url 'index' %}">...
В этой заметке в книге Django содержится несколько советов по развертыванию ваших приложений в подкаталог:
Другие советы
Я всегда использую что-то вроде <a href="/">
(при условии, конечно, что ваш дом находится в самом центре).Кажется, я припоминаю, что однажды просматривал это, и не смог найти переменную Django для этого пути;во всяком случае, /
во всяком случае, это казалось довольно простым.
В вашем админке перейдите в раздел "сайты" и установите домен.
Пройти context_instance=RequestContext(request)
к шаблонам, о которых идет речь.
Теперь используйте {{ SITE_URL }}
в любом из этих шаблонов, и вы - золото.
Глава 10 книги о Джанго содержит больше информации, чем вам понадобится для восстановления этого бита контекстного процессора.
(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}),
работает нормально :)