牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Django で検索ワード数が不特定のリストで and 検索したい場合のメモ

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)

#-> ["アムロ・レイ"]
#-> ["シャア・アズナブル"]
#-> ["アムロ・レイ", "シャア・アズナブル"]
#-> ["マ・クベ"]

動かしてないけどこんな感じか

参考リンク