PageRenderTime 284ms CodeModel.GetById 161ms app.highlight 3ms RepoModel.GetById 118ms app.codeStats 0ms

/tests/modeltests/m2o_recursive/models.py

https://code.google.com/p/mango-py/
Python | 28 lines | 24 code | 0 blank | 4 comment | 0 complexity | 96220b891ed29a24a3cd2bf793d6c777 MD5 | raw file
 1"""
 211. Relating an object to itself, many-to-one
 3
 4To define a many-to-one relationship between a model and itself, use
 5``ForeignKey('self')``.
 6
 7In this example, a ``Category`` is related to itself. That is, each
 8``Category`` has a parent ``Category``.
 9
10Set ``related_name`` to designate what the reverse relationship is called.
11"""
12
13from django.db import models
14
15class Category(models.Model):
16    name = models.CharField(max_length=20)
17    parent = models.ForeignKey('self', blank=True, null=True, related_name='child_set')
18
19    def __unicode__(self):
20        return self.name
21
22class Person(models.Model):
23    full_name = models.CharField(max_length=20)
24    mother = models.ForeignKey('self', null=True, related_name='mothers_child_set')
25    father = models.ForeignKey('self', null=True, related_name='fathers_child_set')
26
27    def __unicode__(self):
28        return self.full_name