Vous pouvez définir plusieurs répertoires de modèles dans votre fichier de paramètres et Django les recherchera dans l'ordre dans lequel vous les avez répertoriés. Le problème est qu'il ne se soucie pas si vous voulez template_x.html du répertoire a ou b. Si vous avez le même template_x dans le répertoire a et dans b, il tirera de ce qui est listé en premier ce qui peut être déroutant. Un bon moyen serait le suivant:
Avoir seulement 1 répertoire de template quelque part appelé 'templates'. À l'intérieur de ce dossier ont un dossier appelé «mobile» et un modèle appelé «par défaut» (ou peu importe). Ensuite, lorsque vous appelez votre modèle, vous devez également utiliser le chemin du répertoire.
À votre avis:
# some mobile view (everything omitted brevity)
get_template('mobile/some_template.html')
# some normal view (everything omitted brevity)
get_template('default/some_template.html')
Dans vos modèles:
Mobile Template:
{% extends 'mobile/base.html' %}
Modèle normal:
{% extends 'default/base.html' %}
Paramètres fichier:
TEMPLATE_DIRS = (
'D:/some/path/to/templates',
)
Ceci est probablement le meilleur. Si vos conventions de nommage sont bonnes (comme 'mobile_whatever.html'), tout ira bien. –
Je voulais vraiment que le chargeur de template change son répertoire source en fonction de certains critères, mais je suppose que ce serait une approche plus sensée. – sleepyjames