我正在做标签搜索功能,用户可以观察到很多标签,我把所有的都放在一个元组中,现在我想从列表中找到至少包含一个标签的所有文本。
符号:text__contains__in=('asd','dsa')
我唯一的想法是做循环,例如:
q = text.objects.all()
for t in tag_tuple:
q.filter(data__contains=t)
例如:
输入标签元组,('car', 'cat', 'cinema')
输出包含该元组中至少一个单词的所有消息,所以 My cat is in the car
, cat is not allowed in the cinema
, i will drive my开车去电影院
感谢您的帮助!
最佳答案
给你:
filter = Q()
for t in tag_tuple:
filter = filter | Q(data__contains=t)
return text.objects.filter(filter)
一些提示:
- 您应该使用大写字母命名您的模型类(即
Text
,而不是text
) - 如果您不担心这种情况,您可能需要
__icontains
关于django - 连接 __contains 和 __in 的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1732680/