当前位置: 首页 > news >正文

最好的手机网站建设七彩建设发展有限公司官方网站

最好的手机网站建设,七彩建设发展有限公司官方网站,网站 空间转移,房地产app开发方案【django framework】ModelSerializerGenericAPIView#xff0c;如何在提交前修改某些字段值 我们经常会遇到下面这种情况#xff1a; 序列化器用的是ModelSerializer#xff0c;写视图的时候继承的是generics.CreateAPIView。现在我想在正式提交到数据库(perform_create)之…【django framework】ModelSerializerGenericAPIView如何在提交前修改某些字段值 我们经常会遇到下面这种情况 序列化器用的是ModelSerializer写视图的时候继承的是generics.CreateAPIView。现在我想在正式提交到数据库(perform_create)之前修改几个字段的值应该怎么去做呢 目录 【django framework】ModelSerializerGenericAPIView如何在提交前修改某些字段值1 在Serializer序列化器中重写create2 继承generics.CreateAPIView后重写perform_create() 1 在Serializer序列化器中重写create 我们知道序列化器承担了部分视图的作用但是它主要的作用有两个 ① 对序列化进来的数据进行校验比如validate一下手机号格式是不是正确 ② 写入一些默认或者不需要前端传递的字段 // 如果说执意要在Serializer中写业务逻辑也可以。只不过这种写法会和rest_framework的设计理念相违背增加了序列化器和视图的耦合性。 from rest_framework import serializers from .models import * import reclass YourModelSerializer(serializers.ModelSerializer):YourModel 创建 序列化器class Meta:model YourModelfields __all__def validate(self, kwargs):校验校验前端传过来的用户手机号格式对不对MOBILE kwargs.get(mobile).mobileREGEX_MOBILE 1[3475698]\d{9}$|^147\d{8}$|^176\d{8}|^198\d{8}$# 客户手机号格式if not re.match(REGEX_MOBILE, MOBILE):raise serializers.ValidationError(客户手机号格式有误)return kwargsdef create(self, validated_data):重写create方法// 添加唯一序列号序列号不需要前端传递# 唯一序列号validated_data[serial] serial102356478# 可以在此写业务逻辑但是并不推荐return super().create(validated_data)2 继承generics.CreateAPIView后重写perform_create() 秉承着谁的活由谁来干的原则第一种方法虽然可行但是增加了序列化器与视图之间的耦合性所以并不是一个好方法。 所以我们通过重写perform_create()方法来修改我们想要修改的字段。 而视图本就是写业务逻辑的这也符合rest_framework设计初衷。 from rest_framework import generics from .models import YourModel from .serializers import YourModelSerializerclass YourModelCreateAPIView(generics.CreateAPIView):queryset YourModel.objects.all()serializer_class YourModelSerializerdef perform_create(self, serializer):# 获取需要修改的字段的值some_field_value serializer.validated_data.get(field_name)# 修改字段的值modified_field_value some_field_value _modified# 更新字段的值serializer.validated_data[some_field] modified_field_value# 继续调用serializer的save方法保存对象serializer.save()如此即完成了功能又不破坏框架功能模块间的耦合性而代码的质量也由此而提升皆大欢喜。
http://www.zqtcl.cn/news/544277/

相关文章:

  • 闵行手机网站建设鲅鱼圈规划建设局网站
  • 合肥市城乡和建设网站网页设计与网站建设区别
  • 青岛网站建设企业建站北京网站模仿
  • 广州建设网站的公司简介湛江建设厅网站
  • 做网站不赚钱了网站关键词排行查询
  • 印度人通过什么网站做国际贸易三门峡做网站
  • 网站排名快速提升工具招远建网站首选公司
  • 手机网站格式商城网游开发公司
  • 手机怎样创建网站长春网站建设哪家专业
  • 做pop网站定制开发教程
  • 成都响应式网站建报告问题
  • 做设计找素材的+网站有哪些建立平台什么意思
  • 网站设置在哪里找宁德网站建设制作
  • logo网站设计素材品牌高端网站建设公司
  • 芙蓉区乡建设局网站郑州网站建设qicaizz
  • 网站建设的缺陷个人网站制作图片
  • 四川省建设厅注册管理中心网站设计上海2021门票
  • 帝国cms做微网站人力资源公司怎么开
  • 网站建设学徒松江品划做网站公司
  • 灯饰网站需要这么做深圳专业网站设计公司
  • 政务网站设计wordpress 嵌入html5
  • 移动网站 pc网站的区别吗网站建设工厂
  • 有意义网站织梦圈子如何调用网站默认模板
  • 南京公司网站模板建站网页制作中的网站维护
  • 微信分享 淘宝网站 怎么做wordpress访问慢
  • 网站后台制作沈阳营销型网站制作技术
  • 微页制作平台网站建设wordpress文章显示数量
  • 望野古诗王绩seo优化系统
  • 网站设计大概流程惠城区龙丰街道
  • 游戏平台十大排名南宁seo优化公司