2009-09-20 9 views
1

Comment les gens déboguent-ils Django templatetags?Django: débogage de templatetags

J'ai créé un, basé sur un exemple de travail, mon nouveau tag me ressemble à celui existant. Mais je reçois juste un

'my_lib' is not a valid tag library: Could not load template library from django.templatetags.my_lib, No module named my_lib 

Je sais que c'est probablement à cause de quelque chose qui échoue lors de la définition de la lib. Mais comment je vois ce qui se passe?

Qu'est-ce que vous utilisez pour déboguer cette situation?

Répondre

5

Cela semble être que Django ne trouve pas le fichier python dans lequel votre balise est définie. Django trouve des balises personnalisées dans un dossier nommé templatetags dans vos dossiers d'applications.

Donc, si vous avez une application appelée Books, et vous appelez {% load book_tags %} dans votre modèle, votre dossier application Livres devrait ressembler à ceci:

  • Livres
    • __init__.py
    • vues .py
    • models.py
    • templatetags
      • __init__.py
      • book_tags.py

Assurez-vous que le fichier est en __init__.py templatetags.

+0

L'application Livres doit également être dans le paramètre INSTALLED_APPS. La balise loader du template balise parcourt chaque répertoire 'templatetags' dans chaque application installée de haut en bas. – priestc

+0

Merci les gars. Bon conseil. En fait, j'ai trouvé le problème: mon fichier n'a pas le même nom que la bibliothèque incluse. Stupidement, j'ai supposé que le nom dans le {% load ..%} était le nom de l'application. – interstar