Итак, в нашей базе данных у нас была модель автомобиля, но могли быть разные типы автомобилей, с различными полями и разными процессами, связанными с ними, поэтому я создал несколько классов моделей, которые наследуются от этой машины, это что-то вроде этого:
class Car(models.Model):
field = models.CharField(max_length=300)
class CarA(Car):
field_a = models.CharField(max_length=300)
class CarA1(CarA):
field_a1 = models.CharField(max_length=300)
class CarA2(CarA):
field_a2 = models.CharField(max_length=300)
class CarB(Car):
field_b = models.CharField(max_length=300)
Кроме того, есть поездки, и с каждой поездкой связан автомобиль:
class Trip(BaseModel):
car = models.ForeignKey(Car)
Если у меня есть экземпляр CarA1, car_a1
, я могу сохранить его вПоездка с car_a1.car_ptr
, но она будет сохранена как Автомобиль, и оттуда я не думаю, что есть способ получить экземпляр CarA1 снова, кроме поиска по идентификатору автомобиля во всех подклассах.
Так что, если я хочу узнать, какой автомобиль имеет поездка, или получить определенное поле подкласса, это будет действительно сложно.
Что вы предлагаете сделать?Я могу оставить только класс Car с определенными полями nullable (field_a, field_b и т. Д.) И полем для указания типа автомобиля, но это кажется неправильным, мне придется проверить тип для проверкиполя и т. д. Но сейчас это кажется лучшим решением.
Я использую Django 1.11 и Python 3.6, кстати.
Извините, я не использовал реальный код, я думал, что это будетбыть более сложным, также извините, если я не объяснил это очень хорошо, я лишен сна и стресса.
Спасибо!