Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Июнь 14, 2018 11:27:35

Maksim_Agamon
От: Зеленоград
Зарегистрирован: 2018-05-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по Django+Python. Как подключить(создать) кастомный тэг или фильтр к шаблону?

Добрый день.
Интересует такой момент, не могу понять что делаю не так при подключении созданного мной фильтра для шаблона с django разметкой.
Есть шаблон и код python который с ним работает и успешно вставляет все что надо. Но когда появилась неободимость создать свой фильтр возникли проблемы.

Структура проекта такая:

#в виде кода питона написал чтобы сохранить табуляцию
user/python/
my_logic.py (программа питона)
documents/
g13.html (конвертаия шаблона с которой работает код питона)
g13.odt (шаблон)
templatetags/
__init__.py (файл создан по совету англозычныx источников)
incrementtag.py (код фильтра)
При запуске основной программы вылазит ошибка:
django.template.exceptions.TemplateSyntaxError: ‘incrementtag’ is not a registered tag library. Must be one of:
cache
i18n
l10n
static

Код файла incrementtag.py:
 from django import template
register = template.Library()
@register.filter()
def incrementtag():
    #print("filt")
    return value.replace("i","0")

Код в шаблоне odt:
{% load incrementtag %}{{ list.0.i }}

Можете подсказать, чего нехватает? В статьях многих пишут что этого достаточно должно быть.

Отредактировано Maksim_Agamon (Июнь 14, 2018 11:46:21)

Офлайн

#2 Июнь 15, 2018 23:46:06

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 98
Репутация: +  7  -
Профиль   Отправить e-mail  

Вопрос по Django+Python. Как подключить(создать) кастомный тэг или фильтр к шаблону?

Так фильтр не правильно вызывается.
{{ variable|incrementtag}}

При этом все таки в него надо подать какое нибуль значение.

https://docs.djangoproject.com/en/2.0/howto/custom-template-tags/
лучше оригинальную документацию посмотреть, она гораздо понятнее.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version