drf的serializer和modelserializer(代码片段)

liuzhihao liuzhihao     2023-02-23     566

关键词:

 

一般的Serializer要自己手动添加各个字段:

class GoodsSerializer(serializers.Serializer):
    # 这里各个字段都会放到validate_data里
    def update(self, instance, validated_data):
        pass

    def create(self, validated_data):
        return Goods.objects.create(**validated_data)

    name = serializers.CharField(required=True, max_length=100)
    click_num = serializers.IntegerField(default=0)
    goods_front_image = serializers.ImageField()
    # ...

 

使用ModelSerializer可以免去这种繁琐的一个个添加字段的方式:

class GoodsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Goods
        fields = (name, click_num, market_price, add_time)

使用fields = "__all__"即可将所有字段都序列化。

drf框架serializer之modelserializer(代码片段)

一、基本语法在没有使用ModelSerializer序列化器类之前,我们定义的序列化器类都需要添加对应模型类字段的很多字段,如果添加的字段特别多,那么势必会影响开发效率和代码的可读性,因此会选择一种更为简洁的序列化器类来... 查看详情

DRF - 如何使用条件更改 serializer.PrimaryKeyRelatedField 的过滤器查找键?

】DRF-如何使用条件更改serializer.PrimaryKeyRelatedField的过滤器查找键?【英文标题】:DRF-Howtochangeserializer.PrimaryKeyRelatedField\'sfilterlookupkeywithcondition?【发布时间】:2020-02-1815:47:11【问题描述】:我正在尝试根据序列化程序上的其他布... 查看详情

drf框架之serializers序列化组件(代码片段)

...,就是吧信息存为类字典形式2.DRF框架自带序列化的工具:serializers 3.DRF框架serializers分为:第一种Serializer 第二种ModelSerializer 第一种用法之Serializerfromdjango.dbimportmodels#Createyourmod 查看详情

drf框架serializer之视图优化(代码片段)

一、create优化在serializer序列化中,我们通过创建序列化器对象的方式大大地简化了视图函数的代码,前端传入的数据通过反序列化操作进行了各种数据校验,代码如下:fromdjango.httpimportJsonResponsefromdjango.viewsimportViewfromdjango.dbimpor... 查看详情

drf序列化和反序列化(二:modelserializer)

一: rest_framework中serializers.Serializer的不方便之处(以下简称Serializer)  a:需要定义每一个字段,并且这个字段是和models字段及其类似。  b:和froms是不是很像,有没有类似ModelFroms类似的模块,简化字段的编写,... 查看详情

drf序列化(代码片段)

1.rest-framework序列化之Serializerrest-framework序列化之Serializer步骤1.创建一个类,继承Serializer2.在类中写要序列化的字段‘‘‘classBookSerializer(serializers.Serializer):#序列化表中的某几个字段固定写法nid=serializers.CharField()name=serializers. 查看详情

drf框架之modelserializer序列化器(代码片段)

ModelSerializer是Serializer的子类,序列化和反序列化跟Serializer一样。ModelSerializer与常规的Serializer相同,但提供了:基于模型类自动生成一系列字段基于模型类自动为Serializer生成validators,比如unique_together包含默认的create()和update()的... 查看详情

drf序列化组件(代码片段)

目录1一序列化器-Serializer1.1定义序列化器1.2创建Serializer对象1.3序列化器的使用1.3.1序列化1.3.1.1基本使用1.3.1.2高级用法source和serializers.SerializerMethodField()的用法1.3.2反序列化1.3.2.1数据验证1)validate_字段名2)validate3)validators1.3.2.2反序... 查看详情

drf单表序列化和反序列化

...odels.CharField(max_length=32,unique=True,null=True)在app01文件下新建serializer.pyfromrest_frameworkimportserializersfrom.modelsimportUser#序列化classUserSerializers(serializers.ModelSerializer):classMeta:model=Userfields=‘__all__‘#反序列化classUserUnSerializer(serializers.Serialize... 查看详情

drf_序列化(代码片段)

Django内置的serializers(对象转成json数据)rest_framework序列化继承Serializers1.单独新建py文件,写一个类继承Serializers2.在类中写要序列化的字段fromrest_framwork.serializersimportResponseclassBookSerializer(serializer.Serializer): 1.#以下两种方式都... 查看详情

drf数据验证+数据存储(代码片段)

1.验证数据的自定义类classBooksDRFt(serializers.ModelSerializer):classMeta:model=Bookfields=‘__all__‘#要验证的字段author=serializers.CharField(required=False)#要验证的字段name=serializers.CharField(min_length=2,error_messa 查看详情

09.drf-modelserializer(代码片段)

四、模型类序列化器ModelSerializer如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类。ModelSerializer与常规的Serializer相同,但提供了:基于模型类自动... 查看详情

在drf路由器中更改查找正则表达式(代码片段)

...和路由器中更改lookup_field的查找正则表达式?CondeSnippet#serializers.pyclassUserSerializer(serializers.ModelSerializer):classMeta:model=Userfields=('username','email','is_staff')#views.pyclassUserViewSet(viewsets.ModelViewSet):queryset=User.objects.all()serializer_class=UserSerialize... 查看详情

restframework(drf)框架初探以及认识serializers序列化器的增删改查(代码片段)

定义DjangoRESTframework(简称DRF)是一个强大灵活的wbapi工具功能完善,可快速开发api平台官网地址https://www.django-rest-framework.org/安装要求pip3installdjango==3.2pip3installdjangorestframework1.0使用drf实现用户的增删改查1.创建app2.定义数 查看详情

(生鲜项目)17.drf实现发送短信验证码功能(代码片段)

...证码的间隔是否大于60秒基于以上考虑,我们需要创建一个serializers 在写serializers逻辑的时候,要注意这里我们不能像之前写goods那样,把serializers和users.models.VerifyCode绑定起来,因为VerifyCode的code是必填字段,但是用户获取验证码只... 查看详情

drf序列化器serializers.serializermethodfield()的用法(代码片段)

...会碰到这种情况,当然也必须要这样解决,goods_json=GoodsSerializer(good_ins,many=False,context=‘request‘:self.context[‘request‘]).data#注意具体语法  我再说几种传参的方法,这几种方法在开发过程中也会经常的遇到,在提供序列化... 查看详情

drf中的request

2018-08-021.内容回顾 1.Serializer(序列化) 1.ORM对应的query_set和ORM对象转换成JSON格式的数据 1.在序列化类中定义自定义的字段:SerializerMethodField 在类中定义get_自定义字段名(self,obj)方法 2.read_only只在显示(查询)时才会有效。 ... 查看详情

drf序列化(代码片段)

目录序列化家族SerializerModelSerializerListSerializerSerializer序列化(了解)视图类序列化类Serializer反序列化(了解)视图类序列化类ModelSerializer序列化和反序列化(重点)视图类序列化类模型类序列化家族Serializer底层序列化重点:单表... 查看详情