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!

Était-ce utile?

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:

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

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:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top