dom*_*791 2 django django-templates django-models 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 = models.ForeignKey('Offers')
order = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
模板:
{% for offer in latest_offers %}
<img src="http://something.com/{{offer.id}}/{{offer.offersphotos.id}}.jpg">
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
{{offer.id}}完美无缺,但如何在同一行中访问order = 1的照片的ID?
我认为查询所有offerphotos给定的offer并获取模板中的第一个并不是一个好主意.
相反,你可以在你的Offers班级定义一个属性,大豆你可以得到第一个photo.
它应该是这样的:
Models.py
class Offers(models.Model):
province = models.CharField()
district = models.CharField()
location = models.CharField()
def first_offerphoto(self):
return self.offerphotos_set.first()
Run Code Online (Sandbox Code Playgroud)
模板
{% for offer in latest_offers %}
<img src="http://something.com/{{offer.id}}/{{offer.first_offerphoto.id}}.jpg">
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
虽然您仍然可以使用以下内容中的逻辑template:
<img src="http://something.com/{{offer.id}}/{{offer.offerphotos_set.first.id}}.jpg">
Run Code Online (Sandbox Code Playgroud)
但我宁愿queries 在显示信息之前做所有事情templates
| 归档时间: |
|
| 查看次数: |
441 次 |
| 最近记录: |