serializer_class = city_model_serializers.CityModelSerializer 说明: 1.queryset指明该视图集在查询数据时使用的哪张数据表 2.serializer_class 指明该视图在进行序列化和反序列化时使用的序列化器 ModelViewSet时,推荐使用子路由模式,即:在应用内建一个urls.py供此app使用。子路由示例代码如下: from app02drf.m...
from.modelsimportBookfrom.serializerimportBookSerializerclassBookAPIView(APIView):defget(self,request):# 取出所有图书的qs对象books=Book.objects.all()# 借助于序列化类--》写一个序列化类# 类实例化时:instance:要序列化的对象 many:True 多条 先记着这两个参数ser=BookSerializer(instance=books,many=True)...
# 视图类: -APIView:之前用过 -GenericAPIView:GenericAPIView继承了APIView # GenericAPIView -类属性: queryset:要序列化的所有数据 serializer_class:序列化类 lookup_field = 'pk' :查询单条时的key值 -方法: -get_queryset():获取所有要序列化的数据【后期可以重写】 -get_serializer : 返回序列化类 -get...
serializer_class = PublishSerializer 校验效果演示 39.【drf-serializer支持嵌套使用】 嵌套原则(即:什么情况下需要嵌套使用): key:value简单形式的,不需要嵌套serializer: { key1:value1, key2:value2, ... } 如果出现非key:value简单形式的,都需要嵌套serializer: { key1:value1, key2:value2, key3:{ k...
增加serializer_class属性,直接指定使用的序列化器 增加过滤器属性:filter_backends 增加分页属性:pagination_class 增加lookup_field属性和实现get_object()方法:用于获取单条数据,可自定义默认分组名(pk) 基于上面的项目新增app模型: myapp/models.py 代码语言:javascript ...
使用Serializer类 在blog的目录下创建一个名为serializers.py文件,并添加以下内容。 from rest_framework import serializers from .models import Article from django.contrib.auth import get_user_model User = get_user_model() class ArticleSerializer(serializers.Serializer): ...
defget_serializer_class(self):ifself.action=='retrieve':returnserializer1 elifself.action=='create':returnserializer2returnserializer2 获取当前用户 restful_api 推荐使用这种格式 /users/id,那么可以考虑重写 get_object() defget_object(self):returnself.request.user ...
extra_kwargs参数为ModelSerializer添加或修改原有的选项参数 # 继承自serializers.ModelSerializerclassStudentInfoSerializer(serializers.ModelSerializer):classMeta:model=StudentInfo# 指定要依据的模型类fields='__all__'# 设置全部字段自动生成extra_kwargs={name:{# 给name字段设置额外的约束'min_value':0,# 设...
class StudentSerializer(serializers.Serializer): # 序列化提供给前台的字段个数由后台决定,可以少提供 # 但是提供的数据库对应的字段,名字一定要与数据库字段相同 id = serializers.IntegerField(read_only=True) name = serializers.CharField(required=True, max_length=200) ...
class 自定义名称(serializers.ModelSerializer): class Meta: model=对应的模型 fields=('参与序列化和反序列的字段1','参与序列化和反序列的字段2') #fields='__all__' 为所有字段 # exclude = ('id', 'is_delete') # 刨除某些字段 # depth = 1 # 跨表自动深度(展示外键表的所有字段) 注意点 其...