Обычно вы не определяете теги в views.py
, но в каталоге с именем templatetags
. Действительно, дерево проекта должно выглядеть следующим образом:
app/
<b>templatetags/</b>
<b>__init__.py</b>
<b>tagname.py</b>
__init__.py
models.py
urls.py
views.py
, тогда вы определяете теги и фильтры шаблонов в app/templatetags/tagname.py
:
# app/templatetags/tagname.py
from django import template
<b>register = template.Library()</b>
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
@register.filter
def get_range(value):
return range(value)
, а затем вы можете загружать теги и фильтры шаблонов с {% load … %}
:
{% load <b>tagname</b> %}
{{ mydict|get_item:mykey }}