Django-rest框架向serializ添加dict

2024-10-01 19:27:48 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的序列化程序.py公司名称:

class SysUserSerializer(serializers.ModelSerializer):
    pk = serializers.IntegerField(read_only=True)
    login_id = serializers.CharField(required=False)
    name = serializers.CharField(required=False)

    class Meta:
        model = SysUser
        fields = ('pk','login_id','name')

这是我的视图.py公司名称:

^{pr2}$

但我得到的回答是:

{"pk": 1, "login_id": "john77", "name": "John"}

我想要这样的回应:

{"pk": 1, "login_id": "john77", "name": "John", "gender": "male"}

怎么做?有可能这样做吗?在


Tags: namepy名称idfalse序列化requiredlogin
1条回答
网友
1楼 · 发布于 2024-10-01 19:27:48

这里的问题是serializer.data不是实例参数,而是返回它的^{}。所以您可以通过将serializer.data分配给变量来解决这个问题。在

class GetUserDetail(APIView):
    def get(self, request, format=None):
        sysuser = SysUser.objects.get(id=1)
        serializer = SysUserSerializer(sysuser)
        data = serializer.data
        data['gender'] = 'male'
        return Response(data, status=200)

也可以在序列化程序的^{}方法中将数据分配给serializer.data

相关问题 更多 >

    热门问题