Добавление отдельных данных в сериализатор в django

enter image description here

Я пишу API, где перечисляются последователи пользователя. Я также хочу отправить общее количество последователей в этом API. Но поле totalFollower постоянно повторяется. Я хочу, чтобы оно было отправлено только один раз. Например, так:

[
totalFollower:2
followers:
{
    {
        "following": "gizli_takip",
    },
    {
        "following": "herkeseacikvetakip",
    }
}]

Мой сериализатор

class SerializerUserFollowings(serializers.ModelSerializer):
following = serializers.CharField(source="follower.username")

totalFollower = serializers.ReadOnlyField()
class Meta:
    model  = ModelFollower
    fields = ("following","totalFollower")

У вас есть несколько вариантов:

Используйте DRF paginator на вашем представлении, что даст count в теле ответа:

from rest_framework.pagination import PageNumberPagination

class YourView(...):
    pagination_class = PageNumberPagination
    ...

В качестве альтернативы, если вы используете набор представлений или что-то подобное, например ListAPIView, вы можете добавить определенные данные в ответ для функции списка:

class YourView(ListAPIView):

    def get_queryset(self):
        return <some query for filtering follows by user>
    
    def list(self, request, *args, **kwargs):
        response = super().list(request, args, kwargs)
        response.data["count"] = self.get_queryset().count()
        return response
Вернуться на верх