在我的Django模板中,我经常调用:
{% for name, address in directory.addressbook.items %}
{% for street in address.list %}
{{street.number}}如何将其创建为筛选器?我试过了,但不起作用。
在模板中,我调用:
{{directory.addressbook.items|all_numbers}}在我的过滤器定义中,我有:
def all_numbers(data):
number_list=[]
if isinstance(data, dict):
for name, address in data:
for street in data.list():
number_list.append(street)
return number_list但我得到的只是“”。我做错了什么?
发布于 2013-06-06 08:48:45
您需要将函数注册为模板筛选器。此外,这些代码需要放在一个模块中,然后导入到您的模板中。
# custom_filters.py
from django import template
register = template.Library()
@register.filter
def all_numbers(data):
number_list=[]
if isinstance(data, dict):
for name, address in data:
for street in data.list(): # this will raise an exception
number_list.append(street)
return number_list
# your-template.html
{% load custom_filters %}
{{ directory.addressbook.items|all_numbers }}https://stackoverflow.com/questions/16951970
复制相似问题