Django通过集合关系查询(反向)

时间:2013-05-21 10:17:40

标签: python django

我有一个名为Toy的课程,其中的玩具是动物或水果。

我的数据库中的一些示例

|name|type|pk|
|Jerry|Cat|33|
|Scoobie|Dog|52|
|Leslie|Dog|73|
|Helen|Strawbery|86|
|Mark|Banana|16|

当用户选择“动物”时,它应输出 Jerry,Scoobie,Leslie ,如果选择“Fruit”,则应输出 Helen,Mark

我需要类似下面的内容

myDict={'Animal':'Cat' or 'Dog', 'Fruits':'Strawberry' or 'Banana'}
Toy.objects.filter(type = myDict[input])

myDict={'Animal':['Cat' ,'Dog'], 'Fruits':['Strawberry' , 'Banana']}
Toy.objects.filter(type in myDict[input])

当然它们不起作用,任何想法我该如何进行?

1 个答案:

答案 0 :(得分:1)

不知道您的模型如何:

Toy.objects.filter(type__in=["Dog", "Cat"])

Toy.objects.filter(type__in=["Strawberry", "Banana"])

和第三(所有玩具类型是水果或动物)

Toy.objects.filter(type__in=["Dog", "Cat", "Strawberry", "Banana"])

由于您没有根据您所描述的内容将“动物”存储为类型,因此您无需{'Animal':[...], 'Fruit':[...]}