Я столкнулся с той же проблемой. Я думаю, что нашел хорошее решение:
Я определил свою модель ресторана, используя три класса, как это:
class RestaurantBase(models.Model):
class Meta:
abstract = True
serves_hot_dogs = models.BooleanField(default=False)
serves_pizza = models.BooleanField(default=False)
class Restaurant(Place, RestaurantBase):
pass
class RestaurantStandalone(RestaurantBase):
class Meta:
managed = False
db_table = Restaurant._meta.db_table
place_ptr = models.OneToOneRelationship(Place)
Теперь, если у меня есть место, где я хочу перейти в ресторан, я делаю следующее:
p = Places.objects.get(id=3)
r = RestaurantStandalone()
r.place_ptr = p
r.save()
теперь ваше место - ресторан
r = Restaurant.objects.filter(place_ptr=p)
print(r.id)
>>3