0
私はこの単純化model.py
を有する:アクセス[ジャンゴ]
class Product(models.Model):
name = models.CharField()
description = models.CharField()
class ProductImage(models.Model):
product = models.ForeignKey(Product,)
photo = models.ImageField(upload_to="product_images/")
is_main = models.BooleanField(default=False)
Product
多くProductImage
を有することができるが、唯一ProductImage
フィールドis_main=True
を有するがでレンダリングされなければなりませんテンプレートと一緒にすべてのフィールドProduct
。
views.py
から次のデータセット:
products = Product.objects.all()
今私はテンプレートにこのような何かをしたいと思う:
{% for product in products %}
<img class="card-img-top" src="{{ product.productimage_set.filter(is_main=True).photo }}" alt="Card image cap">
<div class="card-body">
<h4 class="card-title">{{ product.name }}</h4>
<p class="card-text">{{ product.description }}</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
しかし、明らかにそれは不可能です。テンプレートから直接ではなく、少なくとも。
Product
のすべてのフィールドとテンプレート内の属性is_main=True
の画像を取得する適切な方法はありますか?
グレート、ありがとうございました!方法が最も簡単です。 – kotmsk
@kotmsk私は財産や、より良い 'cached_property'(' django.utils.functional'から)に行きます。 https://docs.djangoproject.com/en/2.0/ref/utils/#module-django.utils.functional – cezar