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

如何使用django模板语言访问一对多关系中另一个表的属性?,django,django-models,django-templates,django-views,Django,Django Models,Django Templates,Django Views,我想在模板中使用硬编码img src中与一对多关系连接的不同表的属性 Models.py: class Offers(models.Model): province = models.CharField() district = models.CharField() location = models.CharField() class OffersPhotos(models.Model): offers_id =

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

Models.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 %}
{%用于最新的\u报价%}
{%endfor%}

{offer.id}}工作得很好,但如何访问同一行中order=1的照片的id?

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

相反,您可以在
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 %}

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

这比我强多了。只想补充一点,OP的问题
offerphotos
应该是
offerphotos\u set
,正如您所指出的那样。他们还可以使用offer.offerphotos_set.all | first as image%}
以同样的方式工作。
<img src="http://something.com/{{offer.id}}/{{offer.offerphotos_set.first.id}}.jpg">