#序列化
import json
#序列化類
class RolesSerializer(serializers.Serializer):
# 必須給數(shù)據(jù)庫的字段一致(序列化組件)
title = serializers.CharField()
##title = serializers.CharField(source="get_user_type_display") <<<<<<<++ source:這個(gè)方法會(huì)獲取這個(gè)字段對(duì)應(yīng)的內(nèi)容
#一對(duì)多 title = serializers.CharField(source="group.id") <<<< 可以用點(diǎn)關(guān)系取出關(guān)聯(lián)的數(shù)據(jù)
#
對(duì)一個(gè)序列化的深度控制
class UserInfo(serializers.Serializer):
title = serializers.CharField(source="get_user_type_display") <<<<<<<++ source:這個(gè)方法會(huì)獲取這個(gè)字段對(duì)應(yīng)的內(nèi)容
class Meta:
model = models.UserTofo #對(duì)哪個(gè)模板類進(jìn)行序列化
fields = "__all__" #對(duì)模塊的所有字段進(jìn)行操作
depth = 1 #深度控制夜只,數(shù)字表示進(jìn)入的層次
#視圖類蚜迅,接收請(qǐng)求,返回響應(yīng)
class RolesView(APIView):
def get(self, request, *args, **kwargs):
roles = models.Role.objects.all() #從數(shù)據(jù)庫中獲取數(shù)據(jù)
ser = RolesSerializer(instance=roles, many=True) #序列化 instance=roles#要序列化的模型類
return HttpResponse(json.dumps(ser.data))