2014-12-08訂正:or検索でなくてand検索だった
(Django 1.6.x)
import operator from characters.models import Character words_list = [ [u"行きます", u"親父にもぶたれたことないのに"], [u"赤い", u"三倍", u"マザコン"], [u"ニュータイプ", u"ララァ"]、 [u"壷"], ] for words in words_list: query = reduce(operator.and_, (Q(description__contains=word) for word in words)) characters = Character.objects.filter(query) print(characters.name) #-> ["アムロ・レイ"] #-> ["シャア・アズナブル"] #-> ["アムロ・レイ", "シャア・アズナブル"] #-> ["マ・クベ"]
動かしてないけどこんな感じか