You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板中如何正确访问字典highest_bids的指定键值?

Django模板访问字典变量键的正确方式

你遇到的错误是因为Django模板语法不支持dict[variable]这种通过变量作为键访问字典的写法,以下是两种可行的解决方法:

方法1:自定义模板过滤器

这是通用的字典变量键访问方案:

  1. 在你的Django应用下创建templatetags目录(需包含__init__.py空文件),新建custom_filters.py文件,写入以下代码:
from django import template

register = template.Library()

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)
  1. 在index.html模板开头加载这个过滤器:
{% load custom_filters %}
  1. 用过滤器语法访问字典值:
<div class="price">Bid: ${{ highest_bids|get_item:listing.id }}.00</div>

方法2:在视图层关联属性到Listing实例

这种方式更贴合Django的ORM使用逻辑,代码更直观:
修改视图函数index,直接给每个Listing实例添加highest_bid属性:

def index(request):
    listings = Listing.objects.all()
    for listing in listings:
        # 替换成你实际获取最高出价的逻辑,这里假设出价存在关联的Bid模型
        highest_bid_record = listing.bids.order_by('-amount').first()
        # 若无出价则设为0,避免模板报错
        listing.highest_bid = highest_bid_record.amount if highest_bid_record else 0
    return render(request, 'index.html', {'listings': listings})

之后在模板中直接访问实例属性即可:

<div class="price">Bid: ${{ listing.highest_bid }}.00</div>

内容的提问来源于stack exchange,提问作者Virtual

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:16:04