イテレータを使用してdjangoで複雑なクエリを作成するにはどうすればよいですか? 実際、これは django よりも「基本的な python」に近いと思いますが、困惑しています。
基本的に、リスト オブジェクトを取得して、これに相当するものを生成したいと考えています。
SELECT FROM examples WHERE mystuff LIKE 'EX1' OR mystuff LIKE 'EX2';
これが私の試みのサンプルコードです。
from example.models import Examples
from django.db.models import Q
includes = ['EX1', 'EX2']
conditions = []
# I can do something like this, which does build a list of objects
for ex in excludes:
conditions.append(~Q(fullblock_icontains='%s' % ex))
# print conditions
# [<django.db.models.query_utils.Q object at 0x03557AB0>,
# <django.db.models.query_utils.Q object at 0x03557AD0>]
# then I need to do something like this, but obviously this won't work.
blocks = Examples.objects.filter('|'.split(conditions))
また、同じことをやりたいと思いますが、否定的です (~Q)。LIKE が分かれば、NOT LIKE が明らかになると思います。