在django模板中获取相关模型字段
Get Related model fields in django template
我正在尝试获取产品,我想要与 Django 模板中的产品相同的图像。
型号
class Product(models.Model):
title = models.CharField(blank=True,null=False,max_length=100)
class ProductImage(models.Model):
product = models.ForeignKey(to='products.Product', on_delete=models.CASCADE, related_name='images', default=None)
image = models.ImageField(upload_to='images/product_inmages', null=False, blank=False)
def __str__(self):
return self.product.title
如果您将 Product
中的 QuerySet
作为 products
传递给模板,您可以使用:
{% for product in products %}
{% for image in product<b>.images.all</b> %}
<img src="{{ image.image.url }}">
{% endfor %}
{% endfor %}
您可以通过在模板中批量加载所有相关 ProductImage
来提高效率:
from django.shortcuts import render
def my_view(request):
products = Product.objects<b>.prefetch_related('images')</b>
return render(request, '<i>name-of-some-template.html</i>', {'products': products})
我正在尝试获取产品,我想要与 Django 模板中的产品相同的图像。
型号
class Product(models.Model):
title = models.CharField(blank=True,null=False,max_length=100)
class ProductImage(models.Model):
product = models.ForeignKey(to='products.Product', on_delete=models.CASCADE, related_name='images', default=None)
image = models.ImageField(upload_to='images/product_inmages', null=False, blank=False)
def __str__(self):
return self.product.title
如果您将 Product
中的 QuerySet
作为 products
传递给模板,您可以使用:
{% for product in products %}
{% for image in product<b>.images.all</b> %}
<img src="{{ image.image.url }}">
{% endfor %}
{% endfor %}
您可以通过在模板中批量加载所有相关 ProductImage
来提高效率:
from django.shortcuts import render
def my_view(request):
products = Product.objects<b>.prefetch_related('images')</b>
return render(request, '<i>name-of-some-template.html</i>', {'products': products})