django 解决自定义序列化返回处理数据为null的问题


Posted in Python onMay 20, 2020

在接口返回数据时,如果数据库表中查询出来的某些字段为null时,在前端需要多处理一些数据异常的情况。

django可以自定义序列化返回处理,将返回的内容限制和预处理再返回到前端。

1.未处理时返回

django 解决自定义序列化返回处理数据为null的问题

如图上,有email、mobile这两个字段是有可以为空且默认值为null的。

2.to_representation处理

在模型序列化类增加, to_representation方法,以自定义数据处理限制

from rest_framework import serializers
from .models import UserInfo

class UserInfoSerializer(serializers.ModelSerializer):
  class Meta:
    model = UserInfo
    # fields = '__all__'
    fields = (
      'id', 'email', 'date_create', 'mobile', 'email', 'notice_voice', 'notice_email', 'notice_sms',
      'notice_push')

  def to_representation(self, instance):
    data = super().to_representation(instance)
    if not data['email']:
      data['email'] = ""
    if not data['mobile']:
      data['mobile'] = ""
    return data

3.处理后前端获取

django 解决自定义序列化返回处理数据为null的问题

补充知识:Django query查询正常,返回对象为空QuerySet

我出现这个错误的前提条件:

数据为导入的数据,并不是正常从前端添加入库的。

问题现象:

views里获取数据库查询对象集合 obj= models.表名.objects.filter(**kwargs)

控制台debug发现 obj为QuerySet<[]>

拿着query到数据库里执行sql ,还能查出数据,就是没返回

解决问题:

查看数据库字段是否符合models中定义的格式,如,是否有默认值,

django 解决自定义序列化返回处理数据为null的问题

django 解决自定义序列化返回处理数据为null的问题

将数据库为空字段修改成和models一样的,有个快速比对的方法,从前端向数据库添加一条数据,拿这个正式数据和导入数据做比对,哪里不一样,修改哪里即可。

以上这篇django 解决自定义序列化返回处理数据为null的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
Apr 11 Python
Python 3.8中实现functools.cached_property功能
May 29 Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
Python如何重新加载模块
Jul 29 Python
python中doctest库实例用法
Dec 31 Python
解决Django transaction进行事务管理踩过的坑
Apr 24 Python
python中urllib包的网络请求教程
Apr 19 Python
python实现126邮箱发送邮件
May 20 #Python
python3.6使用SMTP协议发送邮件
May 20 #Python
Python操作Excel把数据分给sheet
May 20 #Python
python3通过qq邮箱发送邮件以及附件
May 20 #Python
学会python自动收发邮件 代替你问候女友
May 20 #Python
Django中ORM找出内容不为空的数据实例
May 20 #Python
django为Form生成的label标签添加class方式
May 20 #Python
You might like
FCKeditor的安装(PHP)
2007/01/13 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
php 常用类整理
2009/12/23 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
PHP修改session_id示例代码
2014/01/08 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
php中Snoopy类用法实例
2015/06/19 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
JavaScript 语言的递归编程
2010/05/18 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
JavaScript数组方法总结分析
2016/05/06 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
浅谈js闭包理解
2019/03/28 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
Python序列操作之进阶篇
2016/12/08 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Python初学者常见错误详解
2019/07/02 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
国际贸易专业求职信
2014/06/04 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
简历自荐信范文
2015/03/09 职场文书
小学教师教学随笔
2015/08/14 职场文书