Development #15958
debian_config_common.py: migration vers TEMPLATES
0%
Description
À partir de Django 1.8, TEMPLATE_CONTEXT_PROCESSORS / TEMPLATE_DEBUG / TEMPLATE_DIRS / TEMPLATE_LOADERS peuvent se définir dans settings.TEMPLATES, et à partir de 1.10 c'est obligatoirement settings.TEMPLATES; le plan pourrait être de :
- gérer les deux avec un
if 'TEMPLATE_DEBUG' in globals():
(settings qui servirait ainsi de marqueur indiquant le mode à utiliser, ce qui permet de basculer les modules un par un) - migrer toutes les applications pour utiliser TEMPLATES
- ne plus garder dans hobo que le code de TEMPLATES
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a environ 7 ans
- Fichier 0001-debian-add-support-for-TEMPLATES-in-settings-15958.patch 0001-debian-add-support-for-TEMPLATES-in-settings-15958.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
C'est localement testé dans les deux configurations avec 1.8.
Mis à jour par Thomas Noël il y a environ 7 ans
Je m'interroge sur TEMPLATES[0]['APP_DIRS'] = False
, c'est la valeur par défaut selon la doc, mais comment ça va marcher avec nos applis (qui ont des templates/ dans les apps) ?
Mis à jour par Frédéric Péters il y a environ 7 ans
En fait APP_DIRS = True ça ajoute aux "django.template.loaders.app_directories.Loader". Mais c'est uniquement quand les loaders ne sont pas explicitement définis. Comme chez nous c'est explicitement défini, et que ça contient déjà django.template.loaders.app_directories.Loader, on doit mettre APP_DIRS à False.
Dans django/core/checks/templates.py :
E001 = Error( "You have 'APP_DIRS': True in your TEMPLATES but also specify 'loaders' " "in OPTIONS. Either remove APP_DIRS or remove the 'loaders' option.", id='templates.E001', )
Mis à jour par Thomas Noël il y a environ 7 ans
Ok (dans le test tu le mets à True, j'ai sans doute pas tout suivi, donc Ack sauf si)
Mis à jour par Frédéric Péters il y a environ 7 ans
En gros, la config recommandée par django, c'est :
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ ], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', ], }, }, ]
Et je la reprends pile dans le test. C'est celle qu'on retrouverait dans un projet non-hoboïsé. (pas de loader spécifique, APP_DIRS à True).
Lors de l'hoboïsation, dans le debian_config_common.py, on ajoute un loader spécifique, on doit donc virer le APP_DIRS.
(bref ici il aurait été à False dans le tests_multitenant/settings.py ça n'aurait rien changé, c'est juste pour mimer au plus près un settings.py "standard", ensuite altéré par debian_config_common.py).
Mis à jour par Frédéric Péters il y a environ 7 ans
- Statut changé de En cours à Résolu (à déployer)
commit 1b306f5139b18934ebbcc07ba5983454fccdb5d2 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sun Apr 23 22:05:07 2017 +0200 debian: add support for TEMPLATES in settings (#15958)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
debian: add support for TEMPLATES in settings (#15958)