我有一个从multipleechoicefield对象中选择的项目的列表。在创建了这个列表之后,如何对Django模型表进行筛选,以便它选择具有列表中任何值的所有项?在
例如,如果我选择了苹果、橘子和草莓,它将返回水果选择表中的所有数据,其中水果名为苹果、橙子或草莓。在
from someApp.models import FruitChoices
def main(form_list):
r = FruitChoices
data = {}
for form in form_list:
data.update(form.cleaned_data)
fruits = data['fruit_list']
for item in fruits:
result = r.objects.filter(fruit_name__contains='%s' % item)
return result
你能做到的
我推荐这种方法的原因是,如果使用
__in
,它将匹配整个单词。但是您需要的是__contains
,并且没有直接在ORM中这样做的直接方法。因此Q
对象这相当于:
^{pr2}$你说过
以及
但您使用的是“包含”过滤器。在
你需要找到子串吗,比如“坏草莓”?如果没有,您可以使用“\uuu in”过滤器,并降低整个问题的复杂性。在
相关问题 更多 >
编程相关推荐