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

Python 通过集合关系进行Django查询(反向),python,django,Python,Django,我有一门叫做玩具的课,里面的玩具不是动物就是水果 我数据库中的一些例子 |name|type|pk| |Jerry|Cat|33| |Scoobie|Dog|52| |Leslie|Dog|73| |Helen|Strawbery|86| |Mark|Banana|16| 当用户选择“动物”时,它应该输出杰瑞、史酷比、莱斯利,如果选择“水果”,它应该输出海伦、马克 我需要下面的东西 myDict={'Animal':'Cat' or 'Dog', 'Fruits':'Strawberry' o

我有一门叫做玩具的课,里面的玩具不是动物就是水果

我数据库中的一些例子

|name|type|pk|
|Jerry|Cat|33|
|Scoobie|Dog|52|
|Leslie|Dog|73|
|Helen|Strawbery|86|
|Mark|Banana|16|
当用户选择“动物”时,它应该输出杰瑞、史酷比、莱斯利,如果选择“水果”,它应该输出海伦、马克

我需要下面的东西

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


当然,它们不起作用,有什么想法吗?在不知道您的模型外观的情况下,我如何继续

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

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


由于您没有根据所描述的内容将“animal”存储为一种类型,因此您不需要
{'animal':[…],'Fruit':[…]}

确定
输入
已解决,谢谢。但我还是需要字典,反正不重要。我接受这个答案。我必须用15个字符:为什么?由于你提供的信息很少,而且你展示的数据库结构也很有用,你对“动物”几乎没有什么用处。请把你的模型贴出来好吗?你说的是:`if(input=animal)Toy.objects.filter(type_uuin=[“Dog”,“Cat]”),else Toy.objects.filter(type_uin=[“草莓”,“香蕉”)`。这也行,但比使用字典跳过if-else有什么好处吗?哦,你想要一个没有if/else的动态过滤吗?不,在你的情况下,我认为(仍然没有看到你的模型)你应该选择if/else。它将更好地服务于这个用例。
Toy.objects.filter(type__in=["Dog", "Cat"])
Toy.objects.filter(type__in=["Strawberry", "Banana"])
Toy.objects.filter(type__in=["Dog", "Cat", "Strawberry", "Banana"])