【发布时间】:2012-08-06 15:08:20
【问题描述】:
如何创建一个简单的过滤器来从这样的字典中提取值:
PHANTOM_TYPE_CHOICES = (
(1, 'Type 1'),
(2, 'Type 2'),
)
适用于 django 1.4:
我试过了:
from django.template import Library
register = Library()
...
def get(d, key):
return d.get(key, '')
register.filter(key)
..但它不起作用! (它给了我以下错误:'function' object has no attribute 'filter')
有什么想法吗?
【问题讨论】:
-
您的字典 (
PHANTOM_TYPE_CHOICES) 不是字典,而是元组。因此没有钥匙。你想用你的过滤器做什么? -
我试图使用相应的索引在模板中打印 PHANTOM_TYPE_CHOICES 的任何值。因为在我的数据库中我只记住了索引而不是描述。
-
如果您需要像访问您的选择元组这样的字典,您应该首先转换它:
dict(PHANTOM_TYPE_CHOICE)。现在您应该可以通过 index.html 获取您的值了。但是,如果您只需要某些实例的值,get_FOO_choices()可能就足够了。 -
不错的技巧,我不知道我们可以进行这样的转换..