2010-09-06 11 views
0

Des questions similaires ont déjà été posées sur ce site, mais j'avais un doute sur la façon dont les balises d'ancrage de mon site seront remplacées lorsque j'essaye d'héberger mon site sous une suburl.Django utilisant mod_wsgi pour Sub Urls

E.g. Mon domaine est www.example.com et mon suburl qui correspond à l'installation de Django est www.example.com/2010/registration Maintenant, puisque les balises d'ancrage dans mes modèles (pour les liens) sont de la forme d'un '/'(pour référencer la racine) réussi par reste de l'URL les liens ne sont pas contenus dans www.example.com. Ainsi, par exemple, si mon tag d'ancrage est de la forme

<a href='/profile'>Profile</a> 

Puis mon tag d'ancrage sur le site devient www.example.com/profile au lieu de devenir www.example.com/2010/registration/profile/

Est-il possible de contourner ce problème?

Merci, Nitin

Répondre

2

Il y a des balises qui peuvent être utilisés dans les modèles pour assurer préfixe correct ajouté. Commencez par lire:

http://docs.djangoproject.com/en/1.2/ref/templates/builtins/#url

+0

Qu'en est-il du HttpResponseRedirect que j'ai utilisé dans les vues? Ai-je besoin de les remplacer par des URL absolues manuellement? – niting

+0

@niting: Non, vous n'avez pas besoin de les remplacer par des URL absolues. Il vaudra beaucoup mieux nommer vos URL et utiliser 'reverse()' au lieu d'URL absolues. –

+0

Merci beaucoup les gars ..... Je voulais marquer les deux réponses comme acceptées: D – niting

1

Comme le dit Graham, utilisez la balise {% url %} dans vos modèles. Dans les vues, utilisez la fonction reverse(), qui est équivalente. Voir the documentation.