Pregunta

En las plantillas de Django, ¿hay una variable en el contexto (por ejemplo, {{ BASE\_URL }}, {{ ROOT\_URL }} o {{ MEDIA\_URL }} que se puede usar para vincular a la home url de un proyecto?

I.e. si Django se ejecuta en la raíz de un proyecto, la variable (llamémosla R) {{ R }} en una plantilla sería /. Si la URL raíz es una subcarpeta http://host/X/ la variable /X/ sería <=> (o <=>).

Parece dolorosamente simple, pero no puedo encontrar una respuesta. :) ¡Gracias!

¿Fue útil?

Solución

Puede asignar un nombre a la configuración de URL que está utilizando para manejar la página de inicio y usarla:

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 en un subdirectorio:

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

Otros consejos

Siempre uso algo como <a href="/"> (suponiendo que su hogar esté en la raíz, por supuesto). Me parece recordar haber buscado esto una vez, y no pude encontrar una variable Django para este camino; en cualquier caso, / parecía bastante fácil, de todos modos.

En su administrador, vaya a " sites " y establezca el dominio.

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

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

El Capítulo 10 del Libro de Django tiene más información de la que necesitará regresando ese bit de procesador de contexto.

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

funciona bien :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top