ModelSerializer与常规的Serializer相同,但额外提供了:
·基于模型类自动生成一系列字段
·基于模型类自动为Serializer生成validators,比如unique_together
·包含默认的create()和update()的实现
序列化器:
from rest_framework import serializers from .models import Student class StudentModelSerializer(serializers.ModelSerializer): #1.转换字段的声明 #2.声明调用的模型信息 class Meta: model=Student #必填 fields=["id","name","sex","age","classmate"]#必填,可以是字符串"__all__",列表,元组 read_only_fields=["id"]#选填,只读字段列表 extra_kwargs={#选填,字段额外选项声明 "age":{ "max_value":20, "min_value":5, "error_messages":{ "max_value":"年龄必须小于等于20", "min_value":"年龄必须大于等于5", } } } #3.验证代码对象的方法 #4.操作模型的方法
视图:
一条数据:
class StudentModelView(View): def get(self,request): # 1.获取数据集 student=Student.objects.last() #2.实例化序列化器,获得序列化对象 serializer=StudentModelSerializer(student) #3.获取转化后的数据 data=serializer.data #4.响应数据 return JsonResponse(data=data,status=200)
多条数据:
class StudentModelView(View): def get(self,request): # 1.获取数据集 student=Student.objects.all() #2.实例化序列化器,获得序列化对象 serializer=StudentModelSerializer(student,many=True) #3.获取转化后的数据 data=serializer.data #4.响应数据 return JsonResponse(data=data,status=200,safe=False)
标签:student,声明,模型,value,Student,序列化,data,class From: https://www.cnblogs.com/fuck-Innovative-training/p/16642689.html