1 | diff -rduP -x .svn -x '*.pyc' django-trunk/tests/modeltests/custom_sequence/models.py django-new/tests/modeltests/custom_sequence/models.py
|
---|
2 | --- django-trunk/tests/modeltests/custom_sequence/models.py 1970-01-01 01:00:00.000000000 +0100
|
---|
3 | +++ django-new/tests/modeltests/custom_sequence/models.py 2008-02-26 15:01:12.000000000 +0100
|
---|
4 | @@ -0,0 +1,82 @@
|
---|
5 | +# -*- coding: utf-8 -*-
|
---|
6 | +"""
|
---|
7 | +XX. Using a custom incrementor sequence for an AutoField
|
---|
8 | +
|
---|
9 | +By default, Django generates the name of the incrementor sequence
|
---|
10 | +automatically. But you can override this behavior by explicitly adding
|
---|
11 | +``sec_name`` to the AutoField.
|
---|
12 | +"""
|
---|
13 | +
|
---|
14 | +from django.db import models
|
---|
15 | +
|
---|
16 | +class Human(models.Model):
|
---|
17 | + id = models.AutoField(seq_name='global_id_seq')
|
---|
18 | + name = models.CharField(max_length=64)
|
---|
19 | +
|
---|
20 | + def __unicode__(self):
|
---|
21 | + return self.name
|
---|
22 | +
|
---|
23 | +class Animal(models.Model):
|
---|
24 | + id = models.AutoField(seq_name='global_id_seq')
|
---|
25 | + name = models.CharField(max_length=64)
|
---|
26 | +
|
---|
27 | + def __unicode__(self):
|
---|
28 | + return self.name
|
---|
29 | +
|
---|
30 | +class Voter(Human):
|
---|
31 | + name = models.CharField(max_length=64)
|
---|
32 | +
|
---|
33 | + def __unicode__(self):
|
---|
34 | + return self.name
|
---|
35 | +
|
---|
36 | +__test__ = {'API_TESTS':"""
|
---|
37 | +>>> jane = Human(name="Jane Doe")
|
---|
38 | +>>> jane.save()
|
---|
39 | +>>> Human.objects.all()
|
---|
40 | +[<Human: Jane Doe>]
|
---|
41 | +
|
---|
42 | +>>> jane.id
|
---|
43 | +1
|
---|
44 | +
|
---|
45 | +>>> bowser = Animal(name="Ridgemont von Fjausterhofen III aka. Bowser")
|
---|
46 | +>>> bowser.save()
|
---|
47 | +>>> Animal.objects.all()
|
---|
48 | +[<Animal: Ridgemont von Fjausterhofen III aka. Bowser>]
|
---|
49 | +
|
---|
50 | +>>> bowser.id
|
---|
51 | +2
|
---|
52 | +
|
---|
53 | +>>> mary = Voter(name="Mary Sue Heinlein")
|
---|
54 | +>>> mary.save()
|
---|
55 | +>>> Voter.objects.all()
|
---|
56 | +[<Voter: Mary Sue Heinlein>]
|
---|
57 | +
|
---|
58 | +>>> mary.id
|
---|
59 | +3
|
---|
60 | +
|
---|
61 | +# This belongs in an inheritance test
|
---|
62 | +#>>> Human.objects.all()
|
---|
63 | +#[<Human: Jane Doe>, <Voter: Mary Sue Heinlein>]
|
---|
64 | +
|
---|
65 | +>>> Human.objects.get(pk=1)
|
---|
66 | +<Human: Jane Doe>
|
---|
67 | +>>> Human.objects.get(pk=2)
|
---|
68 | +Traceback (most recent call last):
|
---|
69 | + ...
|
---|
70 | +DoesNotExist: Human matching query does not exist.
|
---|
71 | +
|
---|
72 | +# Jane Doe was identified and got a real name
|
---|
73 | +>>> ana = Human.objects.get(pk=1)
|
---|
74 | +>>> ana.name = 'Anastasia Romanova'
|
---|
75 | +>>> ana.save()
|
---|
76 | +>>> ana.id
|
---|
77 | +1
|
---|
78 | +
|
---|
79 | +# Mary got a friend
|
---|
80 | +>>> kim = Voter(name="Kim Possible")
|
---|
81 | +>>> kim.save()
|
---|
82 | +>>> Voter.objects.all()
|
---|
83 | +[<Voter: Mary Sue Heinlein>, <Voter: Kim Possible>]
|
---|
84 | +>>> kim.id
|
---|
85 | +4
|
---|
86 | +"""}
|
---|