【发布时间】:2016-04-22 06:05:14
【问题描述】:
我有两个 Django 模型:
class Product(models.Model):
name = models.CharField(max_length=80, null=True)
is_active = models.BooleanField(default=False, null=False)
class Image(models.Model):
url = models.CharField(max_length=255, unique=True, null=False)
product = models.ForeignKey('Product', related_name='images')
我有一组特定的产品。每个产品都有多个图像。初始调用类似于:
product_list = product_list.filter(is_active=True).prefetch_related('images')
product_list 随后会根据应用的过滤器进行缩减。
当我尝试在显示层(模板)中使用 product_list 时,我会迭代产品列表。我可以访问产品的所有字段除了它的图片。
{{ product.images.0.id }} ==> 空
{{ product.images }} ==> 返回 Image.None
通过调试器运行代码,我可以看到正在执行的 Image SQL 查询,只是没有任何数据传递给模板。那里肯定有数据,因为我可以通过我的 SQL 客户端验证运行它的查询。有谁知道为什么会这样?如何访问给定产品的图片?
【问题讨论】: