I have the following object structure:

class Car(models.Model):
    name = models.CharField(max_length=16)

class Person(models.Model):
    name = models.CharField(max_length=32)
    cars = models.ManyToManyField(Car, through='Relationship')
    parent = models.ForeignKey('self', null=True, blank=True, 
related_name='childrens')

class Relationship(models.Model):
    car = models.ForeignKey(Car)
    person = models.ForeignKey(Person)
    love = models.BooleanField(_('love status'), default=True, db_index=True)


The logic is of the models is:

   - A *Person* may be have another *Person* (children, for 
   instance-ForeignKey on 'self').
   - A *cars* (related manager) should return a cars of the current related 
   person + a cars, that his father (if exists) have (inheritance).
   - A *children* can't *add* to self a *car*, that his father already have 
   (inheritance).
   - A *relationship_set* manager should work by the same logic of *cars* 
manager 
   (if a father loves a car, then a children should love it too.

This logic looks like *inheritance*. I can't implement this logic by 
Multi-table 
inheritance 
<https://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance>, 
because a*children* may have other *children*. Maybe there is some ideas 
like *multi-record inheritance*?

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/90efde45-fdd0-4061-9d3e-bd374b5b29c3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to