Как получить количество продуктов от родителя в 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())