Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

Django model Q 

複雑なクエリの処理はQを使う。

Q object (django.db.models.Q) は使い方が簡単。

from django.db.models import Q
Q(question__startswith='What')

whatから始まるquestionを返す

Q objectは かつ & and または | も使える.

Q(question__startswith='Who') | Q(question__startswith='What')

who または what で始まるquestionを返す。


否定は ~ で表す。つまり~Q 。

Q(question__startswith='Who') | ~Q(pub_date__year=2005)

whoで始まるquestion または 2005年にpublishされていない

Poll.objects.get(
    Q(question__startswith='Who'),
    Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
)

Whoから始まるquestion + ( 2005/5/2にpublishされた または 2005/5/6にpublishされた )をの2つを返す