Projet

Général

Profil

Development #15958

debian_config_common.py: migration vers TEMPLATES

Ajouté par Frédéric Péters il y a environ 7 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
23 avril 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Révision 1b306f51 (diff)
Ajouté par Frédéric Péters il y a environ 7 ans

debian: add support for TEMPLATES in settings (#15958)

Historique

#1

Mis à jour par Frédéric Péters il y a environ 7 ans

C'est localement testé dans les deux configurations avec 1.8.

#2

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

#3

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',
)
#4

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)

#5

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

#6

Mis à jour par Thomas Noël il y a environ 7 ans

Ack (faut m'expliquer longtemps, hein ?)

#7

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)
#8

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

Formats disponibles : Atom PDF