使用django templatetag访问存储在字典中的对象作为值仅输出其字符串表示;不是原始物体

时间:2015-06-19 10:12:35

标签: django python-3.x dictionary django-templates

在views.py中

我正在构建一个字典,其中包含字符串(A1,A2,A3 .... C10)作为键,数据库对象作为值。

itemsByPosition = {}
for storage_instance in StorageInstance.objects.all():
    itemsByPosition[storage_instance.cell] = storage_instance

在模板中,

我想显示对象的不同字段。 一个孤立的,硬编码的例子是(实际上我使用循环来打印整个字典):

{{ itemsByPosition|hash:'A2' }}

in templatetags.py

def hash(h,key):
    if key in h:
        return h[key]
    else:
       return None

register.filter(hash)

但是,模板标记'hash'返回模型的字符串表示形式(例如:“Stabi00052”)而不是整个对象。我希望能够在模板中访问此对象的各种属性。

1 个答案:

答案 0 :(得分:0)

如果密钥是没有空格或字符串而不是下划线的字符串(documentation

,则可以直接访问字典值而无需自定义过滤器
{{ itemsByPosition.A2.attribute }}