Ticket #16112: models.py

File models.py, 1.4 KB (added by adehnert, 4 years ago)

models.py to reproduce

Line 
1from django.db import models
2from django.db.models import Q
3from django.db import connection
4
5# Create your models here.
6class Group(models.Model):
7    name = models.CharField(max_length=100)
8    activity_category = models.ForeignKey('ActivityCategory', null=True, blank=True, )
9
10    def __str__(self, ):
11        return "%s (cat=%s)" % (self.name, self.activity_category_id, )
12
13
14class ActivityCategory(models.Model):
15    name = models.CharField(max_length=50)
16
17    def __str__(self, ):
18        return self.name
19
20def test():
21    qobj = Q(activity_category__name='Dorm') | Q(activity_category__name='Dorm')
22    qex = Group.objects.exclude(qobj)
23    print "or'd/exclude", list(qex)
24    queryset = Group.objects.filter(~qobj)
25    print "or'd/filter", list(queryset)
26    queryset = Group.objects.filter(~Q(qobj))
27    print "or'd/filterout", list(queryset)
28    queryset = Group.objects.filter(Q(~qobj))
29    print "or'd/filterin", list(queryset)
30
31    qobj = Q(activity_category__name='Dorm')
32    qex = Group.objects.exclude(qobj)
33    print "single/exclude", list(qex)
34    queryset = Group.objects.filter(~qobj)
35    print "single/filter", list(queryset)
36    queryset = Group.objects.filter(~Q(qobj))
37    print "single/filterout", list(queryset)
38    queryset = Group.objects.filter(Q(~qobj))
39    print "single/filterin", list(queryset)
40   
41    print ""
42    for query in connection.queries:
43        print query['sql']
Back to Top