Есть три модели, у каждой есть поле price
class Tomato(models.Model):
price=...
class Potatoes(models.Model):
price=...
class Eggplant(models.Model):
price=...
И есть 4ая модель:
class Vegetable(models.Model):
tomato = models.OneToOneField(Tomato, verbose_name='Томат', on_delete=models.CASCADE, blank=True, null=True)
potatoes = models.OneToOneField(Potatoes, verbose_name='Potatoes', on_delete=models.CASCADE, blank=True, null=True)
eggplant = models.OneToOneField(Eggplant, verbose_name='Eggplant', on_delete=models.CASCADE, blank=True, null=True)
gifts = models.ManyToManyField('self', blank=True, symmetrical=False)
Как одним запросом вытащить суммарную цену вот из этого (self это Vegetable) "self.gifts.all()" ?
Проблема в том, что ЛЮБОЙ экземпляр vegetable, должен и содержит только что то одно:
print vegetable.tomato, vegetable.potatoes, vegetable.eggplant
.... "Tomato-delicious", none, none
gifts понятное дело, содержит ссылки на несколько экземпляров Vegetable, как вытащить сумму price этих экземпляров?