首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象的对象JSON响应来自Django后端的React Redux前端

对象的对象JSON响应来自Django后端的React Redux前端
EN

Stack Overflow用户
提问于 2018-12-01 00:30:10
回答 1查看 955关注 0票数 1

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

代码语言:javascript
复制
[
    {
        "id": 1,
        "title": "How to create a django-react app",
        "body": "You should first do this stuff and that"
    },
    {
        "id": 5,
        "title": "How to connect django with react",
        "body": "Get this and that stuff"
    }
]

但这是我想要的响应(JSON对象的JSON对象)。Python字典与Javascript对象或Hashmap相同吗?有什么中间件可以用来转换形状吗?这是serializers.py需要做的工作还是views.py需要完成的工作?如何将响应从对象数组更改为一个或多个对象?

代码语言:javascript
复制
{
    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"
    }
}

serializers.py

代码语言:javascript
复制
class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = '__all__'

views.py

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-01 00:59:25

您应该能够在ArticleViewSetlist方法中构建一个字典:

代码语言:javascript
复制
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):
        # ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53566684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档