django - Django 模板语言
问题描述
“dishList”是“dish”对象的列表,“dish”对象包括一个“id”字段。例如:
dishList = [dish1, dish2, dish3, ...]
dish1.id = 1
“dishCount”是 python 中的字典类型,其中包含每道菜的数字。例如:
dishCount = { dish1.id: 0, dish2.id: 0, ...}
我的问题是在这个 for 循环中:
{% for d in dishList %}
我如何评估菜“d”的数量?我想使用{{ dishCount.(d.id) }}
,但它不起作用。
无法解析剩余部分:来自“dishCount.(d.id)”的“(d.id)”
解决方案
我如何评估菜“d”的数量?
Django 的模板语言被故意限制为不允许下标和函数调用(带参数)。严格来说,您可以为此使用模板过滤器,或者使用jinja 之类的模板引擎。
然而,它受到限制的原因更有趣:它旨在防止用户在模板中编写业务逻辑。通常最好把它写在视图中。
因此,您可以为菜肴添加属性,例如:
dishList = [dish1, dish2, dish3]
dishCount = { dish1.id: 0, dish2.id: 0}
for dish in dishList:
dish.count = dishCount[dish.id]
然后你可以用以下方式渲染它:
{% for d in dishList %}
{{ d.count }}
{% endfor %}
推荐阅读
- algorithm - 如何解决问题“4967 - 三图”ICPC Live Archive
- xml - 从 Zerocode 发布 XML 消息到 Kafka 主题
- python - 类型错误:record_club_minutes() 缺少 2 个必需的位置参数:“购买”和“基金”
- mariadb - 在运行部署时,它在 maria db 中显示问题
- c# - 如何在对 Web api 的 HttpPost 请求中创建外键关系
- c# - 如何使用 REST 在 Unity 中获取 JSON 对象
- amazon-web-services - 如何通过其 arn 找到弹性负载均衡器?
- c++ - C++ 指针的新手;试图从指向父类的指针向量中检索子对象。帮助将不胜感激
- javascript - 文件名中带#的文件下载失败
- dynamics-crm - Forms Pro 问题 - FormsProFlowApp 需要访问组织中资源的权限