Maison  >  Article  >  développement back-end  >  Voici quelques titres basés sur des questions qui correspondent à votre contenu : Direct et spécifique : * Pourquoi Django renvoie-t-il une erreur TemplateDoesNotExist, même si mes modèles sont présents ? * Chargement du modèle Django :

Voici quelques titres basés sur des questions qui correspondent à votre contenu : Direct et spécifique : * Pourquoi Django renvoie-t-il une erreur TemplateDoesNotExist, même si mes modèles sont présents ? * Chargement du modèle Django :

Barbara Streisand
Barbara Streisandoriginal
2024-10-29 03:16:02972parcourir

Here are some question-based titles that fit your content:

Direct and Specific:

* Why Does Django Throw a TemplateDoesNotExist Error, Even Though My Templates Are Present?
* Django Template Loading: How to Fix 'TemplateDoesNotExist' Errors When Templa

Django TemplateDoesNotExist

Problème

Django ne parvient pas à localiser les modèles spécifiés et génère des exceptions de type TemplateDoesNotExist. L'emplacement où Django s'attend à trouver les modèles n'existe pas, même si les modèles sont présents sur le disque.

Ordre de chargement des modèles de Django

Django suit un ordre spécifique lors du chargement des modèles :

  • django.template.loaders.filesystem - Charge les modèles à partir du système de fichiers.
  • django.template.loaders.app_directories - Charge les modèles à partir des répertoires de modèles des applications.

Examen de TEMPLATE_DIRS

Dans ce cas, la configuration de TEMPLATE_DIRS demande à Django de rechercher des modèles dans /usr/lib/python2.5/site-packages/projectname/templates. Cependant, les modèles sont organisés dans /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html. Django ne parvient pas à localiser les modèles car il s'attend à ce qu'ils se trouvent à la racine du répertoire des modèles.

Solution 1

Pour résoudre le problème, déplacez les modèles vers /usr/lib/python2.5 /site-packages/projectname/templates/template_name.html.

Solution 2

Vous pouvez également envisager de modifier TEMPLATE_DIRS pour rechercher des modèles dans les répertoires de modèles des applications :

<code class="python">TEMPLATE_DIRS = (
    os.path.join(SETTINGS_PATH, 'appname1/templates'),
    os.path.join(SETTINGS_PATH, 'appname2/templates'),
    os.path.join(SETTINGS_PATH, 'appname3/templates'),
)</code>

Autorisations de propriété

Si les solutions ci-dessus ne fonctionnent pas, vérifiez les autorisations de propriété du répertoire des modèles. Dans le cas donné, l'exécution de chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/* a résolu le problème, car l'utilisateur du serveur Web avait besoin des autorisations appropriées pour accéder aux modèles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn