¿Cómo se pone un enlace / url a la página de inicio del sitio web en Django?
-
03-07-2019 - |
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!
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:
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 :)