2013年1月7日月曜日

DjangoのQオブジェクト(Q object)でデータベース検索

Django(1.4.2)のQオブジェクト(Q object)でデータベース検索です。別途、用意されたオブジェクトを読み込まなければならないので、最初は面倒だなと思ったのですが、実は、非常に便利だということがわかりました。ドキュメントにもある通り、複数の条件を組み合わせて利用することができるので、複雑な検索にも対応できます。その使い勝手に、感激してしまいました。

views.py
from django.db.models import Q

# aから始まるニックネームのメンバーのみ取得
members = Member.objects.filter(Q(nickname__startswith='a')
# ニックネームの記入があるメンバーのみ取得
members = Member.objects.filter(~Q(nickname = None))


参考サイト
DjangoのORMのすごいところ(偏った言語信者の垂れ流しさん)
How do I do a not equal in Django queryset filtering?(Stack Overflow)

0 件のコメント:

コメントを投稿