假設我們有一個Driver模型,並且一個Driver可能擁有多輛汽車。我希望能夠過濾QuerySet
,以便我可以看到所有駕駛特定車輛的司機。即:Django按可能在多對多字段中的值進行篩選
class Driver(models.Model):
primary_car = models.ForeignKey(Car, related_name='primary')
cars = models.ManyToMany(Car, related_name = 'all')
def save(self, force_insert=False, force_update=False, using=None, *args, **kwargs):
if self.primary_car not in self.cars.all():
self.cars.add(self.primary_car)
super(Car, self).save(force_insert=False, force_update=False, using=None, *args, **kwargs)
class Car(models.Models):
name = models.CharField(max_length=30)
所以我們可以說我有50名司機,我知道有7 Yugos和2有Yugos作爲其主要的汽車。我如何搜索這些驅動程序?我認爲這需要不到2分鐘的時間才能找到答案,所以我可能錯過了一些基本的東西。
更新:我定的錯位save()
方法
謝謝爲了答案!我幾乎不知道'Q-thingie'技術術語。所以你的回答對我來說特別有用。 – Cole 2013-02-26 18:58:22
沒問題。 Q對象爲您提供了一種「OR」查找方式。 – Matt 2013-02-26 19:01:33