![](/img/trans.png)
[英]Django Queryset: Check if parent model has a child/referring model
[英]Django model inheritance: access to child object from parent queryset
我的Django项目中有一些这样的模型:
class Product(models.Model):
name = models.Charfield(max_length=20)
available = models.BooleanField(default=True)
class Tea(Product):
image = models.ImageField(upload_to='products/tea')
class Coffee(Product):
image = models.ImageField(upload_to='products/coffee')
在我的ListView中,我有queryset,它为我提供5种可用产品:
Product.objects.filter(available=True)[:5]
在我的模板中,我想从Tea / Coffee渲染图像,如何从Product queryset访问Tea / Coffee子对象?
{% for product in products %}
{{ product.????.image.url }}
{% endfor %}
我用django-model-utils包解决了这个问题。
更新父模型:
from model_utils.managers import InheritanceManager
class Product(models.Model):
...
objects = InheritanceManager()
我的查询集:
Product.objects.filter(available=True).select_subclasses()[:5]
现在我可以在子模型的模板属性中使用:
{% for product in products %}
{{ product.image.url }}
{% endfor %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.