Django Rest Framework - обертывание JSON-ответа именем модели
Моя цель - настроить JSON-ответ от Django DRF при выводе списка элементов.
Модель:
class Object(models.Model):
code = models.CharField(max_length=16, primary_key=True, unique=True)
item = models.CharField(max_digits=128)
last_updated = models.DateTimeField(auto_now=True, editable=False)
сериализатор:
class ObjectSerializer(serializers.ModelSerializer):
class Meta:
model = Object
fields = ['code', 'item']
<
class ObjectList(generics.ListAPIView):
queryset = Object.objects.all()
serializer_class = ObjectSerializer
def list(self, request):
queryset = self.get_queryset()
serializer = ObjectSerializer(queryset, many=True)
return Response(serializer.data)
<
[
{
"code": "111",
"item": "aaa"
},
{
"code": "222",
"item": "bbb"
}
]
Есть ли способ обернуть ответ именем модели? Ожидаемый результат должен быть:
"objects": [
{
"code": "111",
"item": "aaa"
},
{
"code": "222",
"item": "bbb"
}
]
Вы можете настроить ответ на уровне представления, просто оберните данные сериализатора во внешний словарь:
class ObjectList(generics.ListAPIView):
queryset = Object.objects.all()
serializer_class = ObjectSerializer
def list(self, request):
queryset = self.get_queryset()
serializer = ObjectSerializer(queryset, many=True)
return Response({"objects": serializer.data})