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)