diff options
Diffstat (limited to 'parts/django/tests/modeltests/m2o_recursive/models.py')
-rw-r--r-- | parts/django/tests/modeltests/m2o_recursive/models.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/parts/django/tests/modeltests/m2o_recursive/models.py b/parts/django/tests/modeltests/m2o_recursive/models.py new file mode 100644 index 0000000..ed9945a --- /dev/null +++ b/parts/django/tests/modeltests/m2o_recursive/models.py @@ -0,0 +1,28 @@ +""" +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 + +class Category(models.Model): + name = models.CharField(max_length=20) + parent = models.ForeignKey('self', blank=True, null=True, related_name='child_set') + + def __unicode__(self): + return self.name + +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 __unicode__(self): + return self.full_name |