Допустим, у меня есть класс под названием Fruit с дочерними классами различных видов Fruit с их собственными специфическими атрибутами, и я хочу собрать их в FruitBasket:
класс фруктов (models.Model):
type = models.CharField (max_length = 120, по умолчанию = 'банан', выбор = FRUIT_TYPES)
...
класс банан (фрукты):
"" "банан (фруктовый тип)" ""
length = models.IntegerField (blank = True, null = True)
...
класс апельсин (фрукты):
"" "апельсин (фруктовый тип)" ""
Diameter = models.IntegerField (blank = True, null = True)
...
класс FruitBasket (models.Model):
fruits = models.ManyToManyField (Фрукты)
...
Проблема, с которой я, похоже, сталкиваюсь, заключается в том, что когда я получаю и проверяю Fruits в FruitBasket, я получаю только базовый класс Fruit и не могу получить атрибуты дочернего класса Fruit.
Мне кажется, я понимаю, что происходит - когда массив извлекается из базы данных, единственными полями, которые извлекаются, являются поля базового класса Fruit. Но есть ли способ получить атрибуты дочернего класса без нескольких дорогостоящих транзакций базы данных? (Например, я мог бы получить массив, а затем извлечь дочерние классы Fruit по идентификатору каждого элемента массива).
спасибо заранее, Чак