Django : settings.py templates
Bonjour,
Dans le cas où j'ai un dossier templates directement dans le dossier src, et que j'en ai un dans le dossier du projet.
j'ai bien fait :
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / r'templates', BASE_DIR / r'GabigabDevBlog/templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Dans le dossier src/templates j'ai un fichier base.html qui me sert de base à étendre.
Imaginons que j'ai aussi un fichier base.html dans src/GabigabDevBlog/templates
Si dans un fichier html je fais :
{% extends 'base.html' %}
Dans ce cas ça sera bien le base.html de src/templates qui sera pris en compte ?
Si jamais je veux utiliser l'autre fichier base.html qui est dans le templates de mon projet je devrait faire
{% extends 'GabigabDevBlog/base.html' %}
?
La question paraît un peu bête lol mais je préfère m'assurer que c'est bien la bonne façon de procéder...
Merci d'avance
Je pense que la bonne pratique est de n'utiliser qu'un seul fichier base.html qui s'étend ensuite à l'intégralité de ton site.
Pour moi, ton dossier templates à la racine de ton projet ne doit comprendre que le fichier base.html. Ensuite seulement quand tu es dans ton app, tu créés un dossier templates adapté avec le style de tes pages.
Oui c'est vrai. Mais en fait je voulais surtout savoir si pour le extends, les chemins de dossiers j'avais bien compris. Si on reprend le cas de ma question,
Si j'ai un base.html dans src/templates et une base_app.html dans src/monapp/templates, il faudrait faire :
"Dans le cas où j'étends avec le base.html"
{% extends 'base.html' %}
"Dans le cas où j'utilise base_app.html"
{% extends 'GabigabDevBlog/base_app.html' %}
Il faudrait bien faire comme ça pour les chemins ?
Salut ,
c’est ça. En fait je ne sais pas si tu as déjà vu quand tu es en mode debug et qu’il ne trouve pas le template , il te renvoie une page html avec le message d’erreur et la il te montre les dossiers dans lesquels il a cherché ton template. Et le premier dans lequel il va voir c’est le dossier templates de la racine du projet django (celui de ton screenshot) ensuite il va voir dans les templates des app. C’est d’ailleurs pour ça qu’on s’embête à créer un dossier templates dans chaque app puis un autre dossier du même nom de l’app. Du coup comme tu le fais c’est good, tu prefixes avec le nom de ton app. Sans préfixe il va chercher dans le premier templates.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte