Inheritance among models can be done in two ways:
The multi tables inheritance will create one table for the common fields and one per child model example:
from django.db import models
class Place(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=80)
class Restaurant(Place):
serves_hot_dogs = models.BooleanField(default=False)
serves_pizza = models.BooleanField(default=False)
will create 2 tables, one for Place
and one for Restaurant
with a hidden OneToOne
field to Place
for the common fields.
note that this will need an extra query to the places tables every time you fetch an Restaurant Object.