我有两种模式:
class Item(models.Model):
name = models.CharField()
class Param(models.Model):
product = models.ForeignKey(Item, related_name="param")
height = models.IntegerField()
price = models.IntegerField()
我想要的是以平均价格注释商品,但只保留高度的参数> 60。
items = Item.objects.filter(param__height__gt=60).annotate(price=Avg('param__price'))
这就是我遇到问题的地方。我想从上面的查询中获取过滤的Param对象。 有可能吗? 我知道有解决方法:
for item in items:
item.params = item.param.filter(height__gt=60)
但是还有很多其他问题。 那么,我的问题是我是否可以从项目中访问过滤的param对象?
答案 0 :(得分:1)
class Artist():
blah = models.TextField()
class Album()
blah = models.ForeignKey(blah)
关键是要像这样^
在类中着色另外,例如,键可以是x,y点,时间,用户或任何你想要的东西!
https://github.com/Ry10p/django-Plugis/blob/master/courses/models.py 示例第52行
-Cheers
答案 1 :(得分:0)
items = Item.objects.select_related('param').filter(param__height__gt=60).annotate(price=Avg('param__price')).all()