Assurez-vous que :
sys.path
(import mysite.settings
devrait fonctionner).Il nous arrive de penser que notre moteur de gabarit est la meilleure chose depuis le lard en morceaux, mais nous reconnaissons que le choix d’un langage de gabarit est proche de celui d’une religion. Il n’y a rien dans Django qui nécessite l’utilisation de son langage de gabarit, donc si vous êtes attaché à Jinja2, Mako, ou quoi que ce soit, n’hésitez pas à les utiliser.
Non. Tout comme le système de gabarit, la couche modèle/base de données est découplée du reste du système.
La seule exception étant : si vous utilisez une autre bibliothèque de base de données, vous ne pourrez pas utiliser le site d’administration généré automatiquement par Django. Cette application est couplée à la couche de base de données de Django.
L’utilisation d’un champ FileField
ou d’un champ ImageField
dans un modèle implique quelques étapes :
MEDIA_ROOT
le chemin d’accès absolu vers un répertoire où Django peut enregistrer les fichiers téléversés (pour des raisons de performance, ces fichiers ne sont pas stockés en base de données). Indiquez dans MEDIA_URL
l’URL publique de base correspondant à ce répertoire. Assurez-vous que ce répertoire soit accessible en écriture par l’utilisateur du serveur Web.FileField
ou ImageField
à votre modèle, en définissant l’option upload_to
pour indiquer dans quel sous-répertoire de MEDIA_ROOT
les fichiers doivent être téléversés.MEDIA_ROOT
). Il est très commode et courant d’utiliser l’attribut url
offert par Django. Par exemple, considérant un ImageField
nommé mug_shot
, vous pouvez obtenir l’URL absolue de cette image dans un gabarit avec {{ object.mug_shot.url }}
.Parfois, vos gabarits ont tous besoin de la même chose. Un exemple courant serait des menus générés dynamiquement. À première vue, il semble logique d’ajouter simplement un dictionnaire commun dans le contexte du gabarit.
La bonne solution est d’utiliser un RequestContext
. Les détails sur comment s’y prendre se trouvent ici : Utilisation de RequestContext.
déc. 02, 2017