对一个序列化的深度控制
2019-03-05 本文已影响0人
dream_seeker
#序列化
import json
#序列化类
class RolesSerializer(serializers.Serializer):
# 必须给数据库的字段一致(序列化组件)
title = serializers.CharField()
##title = serializers.CharField(source="get_user_type_display") <<<<<<<++ source:这个方法会获取这个字段对应的内容
#一对多 title = serializers.CharField(source="group.id") <<<< 可以用点关系取出关联的数据
#
对一个序列化的深度控制
class UserInfo(serializers.Serializer):
title = serializers.CharField(source="get_user_type_display") <<<<<<<++ source:这个方法会获取这个字段对应的内容
class Meta:
model = models.UserTofo #对哪个模板类进行序列化
fields = "__all__" #对模块的所有字段进行操作
depth = 1 #深度控制,数字表示进入的层次
#视图类,接收请求,返回响应
class RolesView(APIView):
def get(self, request, *args, **kwargs):
roles = models.Role.objects.all() #从数据库中获取数据
ser = RolesSerializer(instance=roles, many=True) #序列化 instance=roles#要序列化的模型类
return HttpResponse(json.dumps(ser.data))