Django Rest Framework Summarize Nested Object Data By Distinct Month

Я пытаюсь создать сериализатор категорий, который будет суммировать суммы транзакций по месяцам для каждой категории для следующих моделей моделей.

class Category(models.Model):
  description = models.CharField(max_length=255)

class Transaction(models.Model):
  description = models.CharField(max_length=255)
  amount = models.FloatField()
  date = models.DateField()
  category = models.ForeignKey(Category,
                               on_delete=models.CASCADE,
                               related_name='transactions',
                               blank=True,
                                 null=True
                                 )

Я смог получить список отдельных месяцев и общих сумм с помощью следующего сериализатора и View, но когда я пытаюсь использовать сериализатор в сериализаторе Category, я получаю ошибку внизу

class TransactionMonthTotalSerializer(serializers.Serializer):
    month = serializers.CharField()
    totalAmount = serializers.FloatField()

class CategoryMonthTotalSerializer(serializers.ModelSerializer):
    transactionMonth = TransactionMonthTotalSerializer(many=True)

    class Meta:
        model = Category
        fields = ['description','transactionMonth']

class TransactionMonthTotalViewSet(views.APIView):
    
    def get(self,request):
        data = Transaction.objects.filter(owner=request.user)
                                  .annotate(month=TruncMonth('date'))
                                  .values('month')
                                  .distinct()
                                  .annotate(totalAmount=Sum('amount'))
        results = TransactionMonthTotalSerializer(data, many=True).data
        return Response(results)

class CategoryMonthTotalViewSet(viewsets.ModelViewSet):
    serializer_class = CategoryMonthTotalSerializer
    permission_classess = [IsAuthenticated]

    def get_queryset(self):
        return Category.objects.filter(owner=self.request.user)
        

Получена ошибка AttributeError при попытке получить значение для поля transactionMonth на сериализаторе CategoryMonthTotalSerializer. Поле сериализатора может быть названо неверно и не совпадать с атрибутом или ключом экземпляра Category. Оригинальный текст исключения был следующим: у объекта 'Category' нет атрибута 'transactionMonth'.

Вернуться на верх