Ticket #1535: models.2.py

File models.2.py, 1.4 KB (added by lukeplant, 9 years ago)

models.py - can be inserted into a new folder in modeltests to run tests.

Line 
1"""
2Temp
3"""
4
5from django.db import models
6
7class User(models.Model):
8    username = models.CharField(maxlength=20)
9
10class 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
21API_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"""
Back to Top