diff options
| author | Florian Apolloner <florian@apolloner.eu> | 2013-02-26 09:53:47 +0100 |
|---|---|---|
| committer | Florian Apolloner <florian@apolloner.eu> | 2013-02-26 14:36:57 +0100 |
| commit | 89f40e36246100df6a11316c31a76712ebc6c501 (patch) | |
| tree | 6e65639683ddaf2027908d1ecb1739e0e2ff853b /tests/m2o_recursive/models.py | |
| parent | b3d2ccb5bfbaf6e7fe1f98843baaa48c35a70950 (diff) | |
Merged regressiontests and modeltests into the test root.
Diffstat (limited to 'tests/m2o_recursive/models.py')
| -rw-r--r-- | tests/m2o_recursive/models.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/m2o_recursive/models.py b/tests/m2o_recursive/models.py new file mode 100644 index 0000000000..2775d713dd --- /dev/null +++ b/tests/m2o_recursive/models.py @@ -0,0 +1,32 @@ +""" +11. Relating an object to itself, many-to-one + +To define a many-to-one relationship between a model and itself, use +``ForeignKey('self')``. + +In this example, a ``Category`` is related to itself. That is, each +``Category`` has a parent ``Category``. + +Set ``related_name`` to designate what the reverse relationship is called. +""" + +from django.db import models +from django.utils.encoding import python_2_unicode_compatible + + +@python_2_unicode_compatible +class Category(models.Model): + name = models.CharField(max_length=20) + parent = models.ForeignKey('self', blank=True, null=True, related_name='child_set') + + def __str__(self): + return self.name + +@python_2_unicode_compatible +class Person(models.Model): + full_name = models.CharField(max_length=20) + mother = models.ForeignKey('self', null=True, related_name='mothers_child_set') + father = models.ForeignKey('self', null=True, related_name='fathers_child_set') + + def __str__(self): + return self.full_name |
