我有一个包含多个模块的 Django 项目。 我想重用我创建的过滤器。
例如代码:主/视图.py
from django.template.defaulttags import register
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
@register.filter
def get_range(value):
return range(value)
(如何(我可以在辅助/视图中导入和使用这些过滤器(没有剪切和粘贴(.py吗?
通常您不会在views.py
中定义标签,而是在名为templatetags
的目录中定义标签。实际上,项目树应如下所示:
app/
templatetags/
__init__.py
tagname.py
__init__.py
models.py
urls.py
views.py
然后,您可以在app/templatetags/tagname.py
中定义模板标签和过滤器:
# app/templatetags/tagname.py
from django import template
register = template.Library()
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
@register.filter
def get_range(value):
return range(value)
然后,您可以使用{% load … %}
加载模板标签和过滤器:
{% loadtagname%}
{{ mydict|get_item:mykey }}