#python #django
#python #django
Вопрос:
Я пытался создать пользовательский templatetag в моем проекте, но он не работает
Это мой структурированный проект :
Я создал папку в своем индексном каталоге с именем templatetags> __init__.py , extras.py
, внутри дополнительного файла это:
from django import template
register = template.Library()
def cut(value):
return value.replace("no", 'yes')
Шаблон: {% load poll_extras %}
но я получил это
Комментарии:
1. Вам нужно добавить его в приложение и добавить это приложение в
INSTALLED_APPS
.
Ответ №1:
Я создал папку в своем индексном каталоге с именем
templatetags
>__init__.py
,extras.py
, внутри дополнительного файла this .
Вы должны добавить это в приложение. Итак, в корневом каталоге у вас есть каталог приложения, и в этом каталоге приложения вы создаете templatetags
каталог.
app_name # ← name of the app
templatetags/
__init__.py
extra.py
Это приложение должно быть установленным приложением, поэтому вы добавляете имя приложения в INSTALLED_APPS
настройках [Django-doc]:
# settings.py
INSTALLED_APP = [
# …,
'app_name',
# …,
]
Кроме того, вам необходимо зарегистрировать тег шаблона:
# app_name/templatetags/extra.py
from django import template
register = template.Library()
@register.tag # ← register the template tag
def cut(value):
return value.replace("no", 'yes')
Вы должны использовать @register.filter
, если хотите зарегистрировать фильтр шаблонов, вместо тега шаблона.