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

时间:2018-03-27 09:03:31

标签: python django

我想删除序列化程序的内容。我正在使用Django Rest Framework。我正在使系统返回序列化程序的Json。此外,我不想显示user_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)

现在显示所有的儿子数据。我的代码出了什么问题?我应该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以在序列化程序中指定要在响应中包含或排除的字段: http://www.django-rest-framework.org/api-guide/serializers/#specifying-which-fields-to-include

寻找:指定要包含的字段

希望这个helpes

答案 1 :(得分:0)

首先将对象克隆为新变量,然后弹出该键。 if info_serializers.is_valid(raise_exception=True): info_serializers.save() import copy new = copy.deepcopy(info_serializers.data) new.pop('user_id', None) return JsonResponse(new)