1 | """ |
---|
2 | Temp |
---|
3 | """ |
---|
4 | |
---|
5 | from django.db import models |
---|
6 | |
---|
7 | class User(models.Model): |
---|
8 | username = models.CharField(maxlength=20) |
---|
9 | |
---|
10 | class Issue(models.Model): |
---|
11 | num = models.IntegerField() |
---|
12 | cc = models.ManyToManyField(User, blank=True, related_name='test_issue_cc') |
---|
13 | client = models.ForeignKey(User, related_name='test_issue_client') |
---|
14 | def __repr__(self): |
---|
15 | return "<Issue %d>" % (self.num,) |
---|
16 | |
---|
17 | class Meta: |
---|
18 | ordering = ('num',) |
---|
19 | |
---|
20 | |
---|
21 | API_TESTS = """ |
---|
22 | >>> Issue.objects.all() |
---|
23 | [] |
---|
24 | >>> r = User(username='russell') |
---|
25 | >>> r.save() |
---|
26 | >>> g = User(username='gustav') |
---|
27 | >>> g.save() |
---|
28 | >>> i = Issue(num=1) |
---|
29 | >>> i.client = r |
---|
30 | >>> i.validate() |
---|
31 | {} |
---|
32 | >>> i.save() |
---|
33 | >>> i2 = Issue(num=2) |
---|
34 | >>> i2.client = r |
---|
35 | >>> i2.validate() |
---|
36 | {} |
---|
37 | >>> i2.save() |
---|
38 | >>> i2.cc.add(r) |
---|
39 | >>> i3 = Issue(num=3) |
---|
40 | >>> i3.client = g |
---|
41 | >>> i3.validate() |
---|
42 | {} |
---|
43 | >>> i3.save() |
---|
44 | >>> i3.cc.add(r) |
---|
45 | >>> from django.db.models.query import Q |
---|
46 | >>> Issue.objects.filter(client=r.id) |
---|
47 | [<Issue 1>, <Issue 2>] |
---|
48 | >>> Issue.objects.filter(client=g.id) |
---|
49 | [<Issue 3>] |
---|
50 | >>> Issue.objects.filter(cc__id__exact=g.id) |
---|
51 | [] |
---|
52 | >>> Issue.objects.filter(cc__id__exact=r.id) |
---|
53 | [<Issue 2>, <Issue 3>] |
---|
54 | >>> Issue.objects.filter(Q(cc__id__exact=r.id) | Q(client=r.id)) |
---|
55 | [<Issue 1>, <Issue 2>, <Issue 3>] |
---|
56 | >>> Issue.objects.filter(cc__id__exact=r.id) | Issue.objects.filter(client=r.id) |
---|
57 | [<Issue 1>, <Issue 2>, <Issue 3>] |
---|
58 | >>> Issue.objects.filter(Q(client=r.id) | Q(cc__id__exact=r.id)) |
---|
59 | [<Issue 1>, <Issue 2>, <Issue 3>] |
---|
60 | """ |
---|