2008-10-22 14 views
19

En las plantillas de Django, ¿hay una variable en el contexto (por ejemplo {{ BASE\_URL }}, {{ ROOT\_URL }}, o {{ MEDIA\_URL }} que se puede utilizar para enlazar con el home url de un proyecto?¿Cómo se pone un enlace/url en la página de inicio del sitio web en Django?

Es decir, si Django se está ejecutando en la raíz de un proyecto , la variable (vamos a llamarlo R) {{ R }} en una plantilla sería /. Si la URL raíz es una subcarpeta http://host/X/ la variable {{ R }} habría /X/ (o http://host/X/).

parece dolorosamente simple, pero puedo 't encuentra una respuesta. :) ¡Gracias!

Respuesta

37

Usted podría dar la configuración de URL que se utiliza para manejar la página principal de un nombre y el uso que:

urls.py:

from django.conf.urls.defaults import * 

urlpatterns = patterns('myproject.views', 
    url(r'^$', 'index', name='index'), 
) 

Plantillas:

<a href="{% url index %}">... 

ACTUALIZACIÓN: Las versiones más recientes de Django requieren comillas alrededor del nombre de la vista:

<a href="{% url 'index' %}">... 

esta nota en el libro de Django tiene algunos consejos sobre cómo implementar sus aplicaciones a un subdirectorio:

http://www.djangobook.com/en/1.0/chapter20/#cn43

+0

Parece obvio ahora. :¡o gracias! –

4

En su administrador, vaya a "sitios" y establecer el dominio.

Pase context_instance=RequestContext(request) a las plantillas en cuestión.

Ahora usa {{ SITE_URL }} en cualquiera de esas plantillas y estás dorado.

Chapter 10 of the Django Book tiene más información de la que necesitará para volver a generar ese bit de procesador de contexto.

1
(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}), 

funciona bien :)

Cuestiones relacionadas