对一个序列化的深度控制

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))
上一篇下一篇

猜你喜欢

热点阅读