Comment met-on un lien / une URL vers la page d'accueil du site web dans Django?
-
03-07-2019 - |
Question
Dans les modèles Django, existe-t-il une variable dans le contexte (par exemple {{ BASE\_URL }}
, {{ ROOT\_URL }}
ou {{ MEDIA\_URL }}
que l'on peut utiliser pour créer un lien vers l'URL home
d'un projet?
I.e. Si Django est en cours d'exécution à la racine d'un projet, la variable (appelons-la R) {{ R }}
dans un modèle serait /
. Si l'URL racine est un sous-dossier http://host/X/
, la variable /X/
serait <=> (ou <=>).
Cela semble terriblement simple, mais je ne trouve pas de réponse. :) Merci!
La solution
Vous pouvez attribuer un nom à la configuration d'URL que vous utilisez pour gérer la page d'accueil et l'utiliser de la manière suivante:
urls.py:
from django.conf.urls.defaults import *
urlpatterns = patterns('myproject.views',
url(r'^$', 'index', name='index'),
)
Modèles:
<a href="{% url index %}">...
UPDATE: Les nouvelles versions de Django nécessitent des guillemets autour du nom de la vue:
<a href="{% url 'index' %}">...
Cette note du livre Django contient des astuces sur le déploiement de vos applications dans un sous-répertoire:
Autres conseils
J'utilise toujours quelque chose comme <a href="/">
(en supposant que votre maison est à la racine, bien sûr). Je me souviens d’avoir cherché cela une fois et je n’ai pas trouvé de variable Django pour ce chemin; en tout cas, /
semblait assez facile, de toute façon.
Dans votre administrateur, accédez à " sites " et définissez le domaine.
Transmettez context_instance=RequestContext(request)
les modèles en question.
Maintenant, utilisez {{ SITE_URL }}
dans l’un de ces modèles et vous êtes en or.
Le chapitre 10 du Livre Django contient plus d'informations que nécessaire. regadir ce bit de processeur de contexte.
(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}),
fonctionne bien:)