Python 我想删除要显示的序列化程序的内容

Python 我想删除要显示的序列化程序的内容,python,django,Python,Django,我想删除要显示的序列化程序的内容。我正在使用Django Rest框架。我正在使系统返回序列化程序的Json。此外,我不想显示用户id数据。我在views.py上写的 class InfoViews(viewsets.ModelViewSet): queryset = Info.objects.all() serializer_class = InfoSerializer lookup_field = 'id' def update(self,request,

我想删除要显示的序列化程序的内容。我正在使用Django Rest框架。我正在使系统返回序列化程序的Json。此外,我不想显示用户id数据。我在views.py上写的

class InfoViews(viewsets.ModelViewSet):
    queryset = Info.objects.all()
    serializer_class = InfoSerializer
    lookup_field = 'id'

    def update(self,request, *args, **kwargs):
        obj = UserInfo.objects.get(pk=kwargs['id'])

        data = request.data
        info_serializers = InfoSerializer(obj, data = data)

        if info_serializers.is_valid(raise_exception=True):
            info_serializers.save()
            del info_serializers.data['user_id']
            return JsonResponse(info_serializers.data)

现在显示了所有子数据。我的代码中有什么错误?我应该如何解决此问题?

您可以在序列化程序中指定要在响应中包括或排除的字段:

查找:指定要包含的字段


希望这有助于

首先将对象克隆到新变量中,然后弹出键。 如果info_serializers.is_validraise_exception=True: info_serializers.save 导入副本 新建=copy.deepcopyinfo\u serializers.data 新增。弹出“用户id”,无 返回JsonResponsenew

尝试添加信息序列化程序。delete语句后保存。感谢您的评论。我不想显示仅访问更新方法的Json的用户id。因此,我无法在序列化程序中写入限制代码。在这种情况下,我应该怎么做?然后将info\u serializers.data复制到新的dict并从中删除user\u id并将该dict传递给return我编写了new\u info\u serializers=copy.copyinfo\u serializers del new\u info\u serializers.data[user\u id]printnew_info_serializers.data但用户id仍保留在字典中。我该怎么办?如rasel在下面所说-弹出键: