| 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 | +"""}
 | 
|---|