0
假設我有Environment
和Animal
之間的多對多關係,與接合表看起來像:查詢的關係的一側的子集的多對多關係
environment_id animal_id
1 1
1 2
1 3
2 1
2 3
3 2
3 4
3 5
4 2
4 3
5 2
5 4
假設我有與一組Animal
小號ID (1,2,3)
,我如何查詢數據庫以僅返回與這些動物相關的動物子集的環境?在這個例子中,這將是Environments
與ID (1,2,4)
但不是3
或5
。 如果我嘗試:
animals = Animal.objects.filter(id__in=(1,2,3))
animal_list = AnimalList.objects.filter(animal__in=animals)
顯然,這並不工作,因爲他們都從我的子集中的至少一種動物。
模型類主要有:
class Environment(models.Model):
name = models.CharField(max_length=250)
animals = models.ManyToManyField(Animal, through='AnimalList')
class Animal(models.Model):
name = models.CharField(max_length=200)
safe_around_david_cameron = models.BooleanField()
class AnimalList(models.Model):
environment = models.ForeighKey(Environment)
animal = models.ForeignKey(Animal)
可以添加模型類的代碼? –