mydict = {"key1":"value1", "key2":"value2"}

在Django模板中查找字典值的常规方式是{{ mydict.key1 }},{{ mydict.key2 }}.如果键是循环变量怎么办?即:

{% for item in list %} # where item has an attribute NAME
  {{ mydict.item.NAME }} # I want to look up mydict[item.NAME]
{% endfor %}

mydict.item.NAME次失败.如何解决这个问题?

推荐答案

写一个custom template filter:

from django.template.defaulttags import register
...
@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

(我使用.get,因此如果没有键,它将返回none.如果使用dictionary[key],它将返回KeyError.)

用法:

{{ mydict|get_item:item.NAME }}

Python相关问答推荐

PyTorch卷积自动编码器,输出维度与输入不同

如何判断LazyFrame是否为空?

如何知道标志是否由用户传递或具有默认值?

使用plotnine和Python构建地块

在Python中对分层父/子列表进行排序

从webhook中的短代码(而不是电话号码)接收Twilio消息

通过Selenium从页面获取所有H2元素

运行终端命令时出现问题:pip start anonymous"

两个pandas的平均值按元素的结果串接元素.为什么?

从groupby执行计算后创建新的子框架

Pandas—合并数据帧,在公共列上保留非空值,在另一列上保留平均值

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

关于Python异步编程的问题和使用await/await def关键字

在vscode上使用Python虚拟环境时((env))

部分视图的DataFrame

不允许访问非IPM文件夹

Pandas Data Wrangling/Dataframe Assignment

Python Pandas—时间序列—时间戳缺失时间精确在00:00

我对这个简单的异步者的例子有什么错误的理解吗?

无法在Spyder上的Pandas中将本地CSV转换为数据帧