gpt4 book ai didi

django - 如何使用 django 模板语言以一对多关系访问另一个表的属性?

转载 作者:行者123 更新时间:2023-12-02 08:25:30 25 4
gpt4 key购买 nike

我想在模板的硬编码 img src 中使用与一对多关系连接的不同表的属性。

模型.py:

    class Offers(models.Model):
province = models.CharField()
district = models.CharField()
location = models.CharField()

class OffersPhotos(models.Model):
offers_id = models.ForeignKey('Offers')
order = models.IntegerField()

Views.py:

def index(request):

latest_offers = Offers.objects.order_by('-creation_date')[:5]

context_dict = {'latest_offers': latest_offers}

return render(request, 'something.html', context_dict)

模板:

{% for offer in latest_offers %}

<img src="http://something.com/{{offer.id}}/{{offer.offersphotos.id}}.jpg">

{% endfor %}

{{offer.id}} 完美运行,但我如何访问同一行中 order=1 的照片的 ID?

最佳答案

我认为在给定 offer 的情况下查询所有 offerphotos 并在模板中获取第一个不是一个好主意。

相反,您可以在 Offers 类中定义一个属性,这样您就可以获得第一张照片

应该是这样的:

模型.py

class Offers(models.Model):
province = models.CharField()
district = models.CharField()
location = models.CharField()
def first_offerphoto(self):
return self.offerphotos_set.first()

模板

{% for offer in latest_offers %}

<img src="http://something.com/{{offer.id}}/{{offer.first_offerphoto.id}}.jpg">

{% endfor %}

虽然您仍然可以在您的模板中使用逻辑:

<img src="http://something.com/{{offer.id}}/{{offer.offerphotos_set.first.id}}.jpg">

但我宁愿在将信息显示到模板中之前执行所有查询

关于django - 如何使用 django 模板语言以一对多关系访问另一个表的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32617880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com