首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python / Django中将字典值转换为列表?

如何在Python / Django中将字典值转换为列表?
EN

Stack Overflow用户
提问于 2013-06-06 08:33:17
回答 1查看 730关注 0票数 0

在我的Django模板中,我经常调用:

代码语言:javascript
复制
{% for name, address in directory.addressbook.items %}
  {% for street in address.list %}
    {{street.number}}

如何将其创建为筛选器?我试过了,但不起作用。

在模板中,我调用:

代码语言:javascript
复制
{{directory.addressbook.items|all_numbers}}

在我的过滤器定义中,我有:

代码语言:javascript
复制
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

但我得到的只是“”。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2013-06-06 08:48:45

您需要将函数注册为模板筛选器。此外,这些代码需要放在一个模块中,然后导入到您的模板中。

代码语言:javascript
复制
# 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 }}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16951970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档