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