Django: 'current_tags' не является допустимой библиотекой тегов - PullRequest
74 голосов
/ 31 марта 2011

У меня есть небольшой проект Django, который я получил от друга. Код прекрасно работает на его системе. Однако в моей системе я получаю следующее сообщение об ошибке при запуске сервера:

TemplateSyntaxError at /

'current_tags' не является допустимой библиотекой тегов: библиотека шаблонов current_tags не найдена, пробовал django.templatetags.current_tags

Проблема в строке в html-файле:

{% load current_tags %}

Этот точно такой же код работает в его системе без ошибок. Что бы это могло быть?

Ответы [ 17 ]

2 голосов
/ 25 июня 2016

После того, как вы создали тег шаблона, он должен находиться в пакете 'templatetags' в приложении, установленном в настройках. INSTALLED_APPS, обязательно перезапустите ваш dev-сервер.

2 голосов
/ 13 мая 2016

Убедитесь, что оператор load правильный.Это должно быть имя файла, а не имя приложения.Например, если у вас есть это приложение:

appname
├── __init__.py
├── templatetags
│   ├── __init__.py
│   └── foobarfilename.py

Затем вы должны поместить это в свой шаблон:

{% load foobarfilename %}

Конечно, вы должны проверить и другие ответы.

1 голос
/ 21 октября 2016

Может быть, кто-то найдет это полезным: каким-то образом я назвал каталог 'templatetags ' вместо 'templatetags', то есть - с пробелом в конце.Потребовались часы, чтобы наконец понять.

0 голосов
/ 17 июля 2019

В моем случае это было - я использую

@register.inclusion_tag('template-to-use.html')

Я забыл создать этот шаблон, и он сразу начал работать. Я знаю, что приведенные выше ответы больше связаны с большинством вопросов, но надеюсь, что кто-то сочтет это полезным. Это должно было достаться мне:

Template does not exist

но это не так, и это сработало.

0 голосов
/ 17 июля 2019

В моем случае проблема была, Я использовал {% load filter_method_name %}

Мне пришлось изменить на {% filename %}

0 голосов
/ 18 июля 2017

В моем случае я создал экземпляр библиотеки, используя переменную tag вместо register variable

tag = template.Library()

Но это должно быть

register = template.Library()

Чтобы быть допустимой библиотекой тегов, модуль должен содержать переменную уровня модуля с именем register, которая является шаблоном. Экземпляр библиотеки, в котором зарегистрированы все теги и фильтры

0 голосов
/ 05 ноября 2012

Все советы, перечисленные здесь, мне не помогли.Поэтому в моем конкретном случае проблема заключалась в том, что тег шаблона нужно было загружать из стороннего приложения, и я вручную скопировал исходную папку с этим приложением в папку src в моем virtualenv.Затем я запустил python setup.py install внутри этой папки.После этого django не смог загрузить этот модуль.

Затем я удалил исходную и установленную папку этого приложения и установил его с помощью pip install -r requirements.txt после добавления соответствующей строки в requirements.txt файл.Загрузился в папку src, установил и все стало работать нормально.Надеюсь, это кому-нибудь поможет.

...