Я установил следующие три модели в своем приложении django:
class SubCategory(models.Model):
name = models.CharField('Nome della sottocategoria', max_length=30)
class Materials(models.Model):
subcategory= models.ForeignKey(SubCategory)
quantity=models.DecimalField()
price=models.DecimalField()
class Costs_materials(models.Model):
subcategory= models.ForeignKey(SubCategory)
quantity=models.DecimalField()
В моих представлениях я установил следующий код:
agg=Subcategory.objects.annotate(giacenza=Coalesce(Sum('materials__quantity'), 0)).annotate(
utilizzato=Coalesce(Sum('costs_materials__quantity'), 0))
Все работает отлично, но если Я пытаюсь добавить еще одну функцию аннотирования, пример объявления:
agg=Subcategory.objects.annotate(giacenza=Coalesce(Sum('materials__quantity'), 0)).annotate(
utilizzato=Coalesce(Sum('costs_materials__quantity'), 0))
Результат giacenza и utilizzato неправильный, но результат вдвое больше, чем правильный. Пример A d, если результат должен быть 10, это 20 .
Где ошибка ??