以下是代码

def index(request):
    highest_bids = {}
    for listing in Listing.objects.all():
        highest_bids[listing.id] = listing.product_bids.order_by('bid').last()
    return render(request, "auctions/index.html", {
        "listings" : Listing.objects.all(),
        "highest_bids" : highest_bids
    })

现在,我如何从index.html访问highest_bids内的密钥值?

   <div class="price">Bid: ${{highest_bids[listing.id]}}.00</div>

我试过了,但它一直给我这个错误: TemplateSyntaxError at / Could not parse the remainder: '[listing.id]' from 'highest_bids[listing.id]'

我怎样才能正确地做到这一点呢?

推荐答案

您不能在Django模板中下标.您可以做的只是添加一个属性:

def index(request):
    queryset = Listing.objects.all()
    for listing in queryset:
        listing.highest_bid = listing.product_bids.latest('bid')

    return render(
        request,
        'auctions/index.html',
        {
            'listings': queryset,
        },
    )

并因此使用以下方式进行渲染:

{{ listing.highest_bid }}

Django相关问答推荐

Django中的设计用户类

Django REST framework:object has no attributed after annotation;Got attributeError when try to get a value for field field on serializer<>

Django Model邮箱字段是必需的,即使在我将其设置为NULL=True和BLACK=True之后也是如此

Django-Values()并按月分组

Django中的DateTimeField到DateField

如何删除Docker上的django应用程序?

在 Django 中重组多对多字段

根据当前对象中的多对多字段过滤对象

Django 模型 Select - 只允许管理界面上的特定转换

如何根据反向外键相关模型的字段过滤 QuerySet?

Django 长时间运行带有线程/处理的异步任务

django 管理员登录突然要求 csrf 令牌

文档中的 Mongoengine creation_time 属性

获取 Django 中的缓存键列表

如何在 django admin 中显示布尔属性

django admin 排序外键字段列表

响应发送到客户端后在 Django 中执行代码

访问 django 管理模板中的对象

如何将本地文件分配给 Django 中的 FileField?

如何使用 ModelSerializer 显示所有模型字段?