Django: отладка тегов шаблонов

Как же люди отлаживают теги шаблонов Django?

Я создал его на основе рабочего примера, мой новый тег выглядит так же, как и существующий. Но я просто получаю

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

Я знаю, что это, вероятно, из-за того, что что-то не удалось при определении библиотеки. Но как я увижу, что происходит?

Что вы используете для отладки этой ситуации?


person interstar    schedule 20.09.2009    source источник


Ответы (1)


Похоже, что Django не может найти файл python, в котором определен ваш тег шаблона. Django находит пользовательские теги в папке с именем templatetags в папках ваших приложений.

Итак, если у вас есть приложение под названием «Книги» и вы вызываете {% load book_tags %} в своем шаблоне, ваша папка приложения «Книги» должна выглядеть примерно так:

  • Books
    • __init__.py
    • просмотры.py
    • модели.py
    • templatetags
      • __init__.py
      • book_tags.py

Убедитесь, что файл __init__.py находится в тегах шаблона.

person David    schedule 20.09.2009
comment
приложение «Книги» также должно быть в настройке INSTALLED_APPS. Загрузчик тегов шаблонов просматривает каждый каталог «templatetags» в каждом установленном приложении сверху вниз. - person priestc; 20.09.2009
comment
Спасибо, парни. Хороший совет. На самом деле я обнаружил проблему: мой файл не имел того же имени, что и включаемая библиотека. Я по глупости предположил, что имя в {%load..%} было названием приложения. - person interstar; 20.09.2009