Как получить количество продуктов от родителя в django rest framework

Я новичок в django, у меня есть одна модель такого типа

class Category(models.Model):
    title = models.CharField(max_length=200)
    parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')

Родитель - продукты питания подродитель - итальянская кухня, французская кухня и другие пицца, полента, лазанья

Родитель - напитки субпродукт - сок, алкохол вода, чай, чай с корицей

Можно ли считать в сериализаторе количество продуктов - 3 количество напитков - 4

используйте метод @property. https://djangocentral.com/property-decorator-explained/. это может помочь.

Вы имеете в виду что-то вроде этого?

class Category(serializers.ModelSerializer):
    no_of_children = serializer.IntegerField(read_only=True)

    class Meta:
        model = Category
        fields = ('title', 'no_of_children',)
    
    @staticmethod
    def prefetch_related(queryset):
        return queryset.annotate(
            no_of_children=Count('children')
        )

Не забудьте вызвать метод prefetch_related в вашем представлении, например

queryset = serializer.prefetch_related(Category.objects.all())

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