serializer_class = city_model_serializers.CityModelSerializer 说明: 1.queryset指明该视图集在查询数据时使用的哪张数据表 2.serializer_class 指明该视图在进行序列化和反序列化时使用的序列化器 ModelViewSet时,推荐使用子路由模式,即:在应用内建一个urls.py供此app使用。子路由示例代码如下: from app02drf.m...
classUserInfoSerializer(serializers.ModelSerializer): # group = serializers.HyperlinkedIdentityField(view_name="gp", lookup_field='group_id', lookup_url_kwarg='xxx') group = serializers.HyperlinkedIdentityField(view_name='gp', lookup_field='group_id', lookup_url_kwarg='xxx') classMeta: model...
在students应用目录中新建serializers.py用于保存该应用的序列化器。 创建一个StudentModelSerializer用于序列化与反序列化。 python # 创建序列化器类,回头会在试图中被调用classStudentModelSerializer(serializers.ModelSerializer):classMeta:model = Student fields ="__all__" model指明该序列化器处理的数据字段从模...
增加serializer_class属性,直接指定使用的序列化器 增加过滤器属性:filter_backends 增加分页属性:pagination_class 增加lookup_field属性和实现get_object()方法:用于获取单条数据,可自定义默认分组名(pk) 基于上面的项目新增app模型: myapp/models.py 代码语言:javascript 复制 from django.dbimportmodelsclassUser(models...
class PublishModelSerializer(serializers.ModelSerializer): # 自定义不入库的 反序列化 字段 re_name = serializers.CharField(write_only=True) class Meta: model = models.Publish fields = ('name', 're_name', 'address') def validate(self, attrs): ...
pagination_class = CommonPagination def list(self, request, *args, **kwargs): queryset = self.filter_queryset(self.get_queryset()) len_model = len(queryset) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) ...
如果一个 viewset 需要多个 serializer,可以重写 get_serializer_class 方法 defget_serializer_class(self):ifself.action=='retrieve':returnserializer1 elifself.action=='create':returnserializer2returnserializer2 获取当前用户 restful_api 推荐使用这种格式 /users/id,那么可以考虑重写 get_object() ...
extra_kwargs参数为ModelSerializer添加或修改原有的选项参数 # 继承自serializers.ModelSerializerclassStudentInfoSerializer(serializers.ModelSerializer):classMeta:model=StudentInfo# 指定要依据的模型类fields='__all__'# 设置全部字段自动生成extra_kwargs={name:{# 给name字段设置额外的约束'min_value':0,# 设...
DRF定义Serializer 1. 定义方法 Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializer。 例如,我们已有了一个数据库模型类BookInfo class BookInfo(models.Model): btitle = models.CharField(max_length=20, verbose_name='名称')...
self.age=ageclassUserSerializer(serializers.Serializer):"""序列化器类"""name=serializers.CharField()# 此处age字段的required参数默认为Trueage=serializers.IntegerField()if__name__=="__main__":# 准备数据data={'name':'laowang'}# 数据校验serializer=UserSerializer(data=data)res=serializer.is_valid...