我在我的模型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()' –