Ticket #21150: shell_session.txt

File shell_session.txt, 2.0 KB (added by Eivind Fonn <evfonn@…>, 11 years ago)

Shell session to reproduce

Line 
1In [1]: import django; from django.db.models import Count; from bugrep.models import *
2
3In [2]: Alfa.objects.all().delete; Bravo.objects.all().delete; Charlie.objects.all().delete()
4
5In [3]: b = Bravo.objects.create()
6
7In [4]: c = Charlie.objects.create(bravo=b)
8
9In [5]: qsboth = Charlie.objects.select_related('alfa').annotate(Count('bravo__charlie')); qsboth
10Out[5]: []
11
12In [6]: qsboth_rev = Charlie.objects.annotate(Count('bravo__charlie')).select_related('alfa'); qsboth_rev
13Out[6]: []
14
15In [7]: qsselrel = Charlie.objects.select_related('alfa'); qsselrel
16Out[7]: [<Charlie: Charlie object>]
17
18In [8]: qsanno = Charlie.objects.annotate(Count('bravo__charlie')); qsanno
19Out[8]: [<Charlie: Charlie object>]
20
21In [9]: str(qsboth.query) == str(qsboth_rev.query)
22Out[9]: True
23
24In [10]: print(str(qsboth.query))
25SELECT "bugrep_charlie"."id", "bugrep_charlie"."alfa_id", "bugrep_charlie"."bravo_id", COUNT(T4."id") AS "bravo__charlie__count", "bugrep_alfa"."id" FROM "bugrep_charlie" INNER JOIN "bugrep_alfa" ON ( "bugrep_charlie"."alfa_id" = "bugrep_alfa"."id" ) LEFT OUTER JOIN "bugrep_bravo" ON ( "bugrep_charlie"."bravo_id" = "bugrep_bravo"."id" ) LEFT OUTER JOIN "bugrep_charlie" T4 ON ( "bugrep_bravo"."id" = T4."bravo_id" ) GROUP BY "bugrep_charlie"."id", "bugrep_charlie"."alfa_id", "bugrep_charlie"."bravo_id", "bugrep_alfa"."id"
26
27In [11]: print(str(qsselrel.query))
28SELECT "bugrep_charlie"."id", "bugrep_charlie"."alfa_id", "bugrep_charlie"."bravo_id", "bugrep_alfa"."id" FROM "bugrep_charlie" LEFT OUTER JOIN "bugrep_alfa" ON ( "bugrep_charlie"."alfa_id" = "bugrep_alfa"."id" )
29
30In [12]: a = Alfa.objects.create()
31
32In [13]: Charlie.objects.update(alfa=a)
33Out[13]: 1
34
35In [14]: qsboth = Charlie.objects.select_related('alfa').annotate(Count('bravo__charlie')); qsboth
36Out[14]: [<Charlie: Charlie object>]
37
38In [15]: qsboth_rev = Charlie.objects.annotate(Count('bravo__charlie')).select_related('alfa'); qsboth_rev
39Out[15]: [<Charlie: Charlie object>]
40
41In [16]: print(django.get_version())
421.6b4
Back to Top