Добавление отдельных данных в сериализатор в django
Я пишу 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
