Django Rest Framework Сериализация модели в объект с пользовательским ключом

Я работаю с Django и djangorestframework. Что я должен изменить, чтобы получить желаемый результат?

serializers.py:

from rest_framework import serializers
from django.contrib.auth.models import User

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['id', 'username']

views.py:

from django.contrib.auth.models import User
from rest_framework import viewsets
from .serializers import UserSerializer

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

токовый выход:

[
    {
        "id": 1,
        "username": "some_username"
    },
    {
        "id": 2,
        "username": "another_username"
    }
]

желаемый результат:

{
    "some_username": {
        "id": 1
    },
    "another_username": {
        "id": 2
    }
}

Это сработает для получения "альтернативного желаемого результата":

from django.contrib.auth.models import User
from rest_framework import viewsets
from .serializers import UserSerializer
from rest_framework.response import Response

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

    def list(self, request):
        queryset = User.objects.all()
        serializer = UserSerializer(queryset, many=True)
        list_of_objects = serializer.data
        object_of_objects = {}
        custom_key = "username"
        for current_object in list_of_objects:
            object_of_objects[current_object[custom_key]] = current_object
        return Response(object_of_objects)
Вернуться на верх