我想删除序列化程序的内容。我正在使用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)
现在显示所有的儿子数据。我的代码出了什么问题?我应该如何解决这个问题?
答案 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)