Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象的对象从Django后端到React Redux前端的JSON响应_Django_Reactjs_Redux_Django Rest Framework_Serialization - Fatal编程技术网

对象的对象从Django后端到React Redux前端的JSON响应

对象的对象从Django后端到React Redux前端的JSON响应,django,reactjs,redux,django-rest-framework,serialization,Django,Reactjs,Redux,Django Rest Framework,Serialization,这是Django在前端(JSON对象数组)中调用axios api时的响应 但这是我想要的响应(JSON对象中的JSON对象)。 Python字典与Javascript对象或Hashmap相同吗? 是否有某种中间件可用于转换形状? 这是序列化程序.py需要执行的作业还是视图.py需要执行的作业?如何将对象数组的响应更改为一个或多个对象 { 1: { "id": 1, "title": "How to create a django-react app",

这是Django在前端(JSON对象数组)中调用axios api时的响应

但这是我想要的响应(JSON对象中的JSON对象)。 Python字典与Javascript对象或Hashmap相同吗? 是否有某种中间件可用于转换形状? 这是
序列化程序.py
需要执行的作业还是
视图.py
需要执行的作业?如何将对象数组的响应更改为一个或多个对象

{
    1: {
        "id": 1,
        "title": "How to create a django-react app",
        "body": "You should first do this stuff and that"
    },
    5: {
        "id": 5,
        "title": "How to connect django with react",
        "body": "Get this and that stuff"
    }
}
序列化程序.py

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = '__all__'
class ArticleViewSet(ViewSet):
    queryset = Article.objects.all()

    def list(self, request):
        serializer = ArticleSerializer(ArticleViewSet.queryset, many=True)
        return Response(serializer.data)

    def retrieve(self, request, pk=None):
        article = get_object_or_404(ArticleViewSet.queryset, pk=pk)
        serializer = ArticleSerializer(article, many=False)
        return Response(serializer.data)
视图.py

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = '__all__'
class ArticleViewSet(ViewSet):
    queryset = Article.objects.all()

    def list(self, request):
        serializer = ArticleSerializer(ArticleViewSet.queryset, many=True)
        return Response(serializer.data)

    def retrieve(self, request, pk=None):
        article = get_object_or_404(ArticleViewSet.queryset, pk=pk)
        serializer = ArticleSerializer(article, many=False)
        return Response(serializer.data)

您应该能够在
ArticleViewSet
列表
方法中构建词典:

class ArticleViewSet(ViewSet):
    queryset = Article.objects.all()

    def list(self, request):
        serializer = ArticleSerializer(ArticleViewSet.queryset, many=True)
        return Response({article['id']: article for article in serializer.data})

    def retrieve(self, request, pk=None):
        # ...