我的模态中有一个名为technology
的listTextField。我想基于数组过滤对象,如果technology
字段中存在每个数组值。
tech = ['a','b',....] #dynamic list
mentors_list = Mentor.objects.filter(
**{"technology__contains" : value for value in tech}) #this doesn't work
Mentor课程(以及其他领域):
class Mentor(Meta):
technology = ListTextField(
base_field=models.CharField(max_length=20),
size=10, max_length=(10 * 11))
基本上我想要mentor_list
中technology
字段必须包含tech
数组中所有值的所有对象(但可能包含一些额外的值)。
答案 0 :(得分:2)
来自documentation
您可以使用Q
链接&
对象,以检查ListTextField
中包含的多个条目。
from functools import reduce
technologies = ['a','b'] # your dynamic list
queries = [Q(technology__contains=technology) for technology in technologies]
query = reduce(lambda x, y: x & y, queries)
mentors_list = Mentor.objects.filter(query)