我在我的模型Painting
和Hit
中有两个类。基于Django中另一个查询返回的对象数量进行过滤
class Painting(models.Model):
objectNumber = models.CharField(max_length=128)
class Hit(models.Model):
painting = models.ForeignKey(Painting)
通过这种方式,每幅作品可以连接到多个作品,但每个作品只能连接到一幅作品。
我希望选择每个连接3个或更少点击的绘画。我怎样才能做到这一点?
可能的解决方案:
我想我可以做一些对环...
for painting in Painting.objects.all():
if len(Hit.objects.filter(painting=painting)) > 4:
# and then append it to a list or something
...但我相信有我可以申请,我可以”一些本地的过滤器似乎找不到。否则,我可以添加一个字段到Painting
以计算与它相关的点击次数,但这似乎不合逻辑。
这也适用于ManyToMany领域? –
select_related仅适用于onetoone和foreignkeyfield。如果你有很多很多的领域,你必须去prefetch_related –
我似乎无法做到。我运行'Painting.objects.all()。prefetch_related('画')''返回一个'AttributeError:在绘画对象上找不到'绘画','画'是一个无效参数prefetch_related()' –