0047 Q函数的使用
Django的组合查询,一般使用Q函数。 1 引用Q函数 from django.db.models import Q 2 支持& (and)、| (or)、~(not)操作符 Asset.objects.get( Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)), question__startswith='Who' ) Asset.objects.get( Q(pub_date=date(2005, 5, 2)) | ~Q(pub_date=date(2005, 5, 6)), question__startswith='Who' ) Asset.objects.get( Q(pub_date=date(2005, 5, 2)) & Q(pub_date=date(2005, 5, 6)), question__startswith='Who' ) 3 复杂分级条件 join_orgs = models.UserOrg.objects.filter(Q(user=user), ~Q(active=2) & ~Q(active=9)) # 得到已经加入过的组织 q1 = ~Q() # 我加入的组织不包括在内 q1.connector = 'OR' for item in join_orgs: q1