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 相关文章推荐
Python如何为图片添加水印
Nov 25 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
python批量查询、汉字去重处理CSV文件
May 31 Python
python画图把时间作为横坐标的方法
Jul 07 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
python实现简单银行管理系统
Oct 25 Python
Python列表元素常见操作简单示例
Oct 25 Python
Python+Redis实现布隆过滤器
Dec 08 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
Python中return函数返回值实例用法
Nov 19 Python
python析构函数用法及注意事项
Jun 22 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
PHP中的日期及时间
2006/11/23 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
python多任务之协程的使用详解
2019/08/26 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
Python 文件数据读写的具体实现
2020/01/24 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
自我评价格式
2014/01/06 职场文书
大学生入党思想汇报
2014/01/14 职场文书
物理研修随笔感言
2014/02/14 职场文书
机电一体化专业求职信
2014/07/22 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
违纪检讨书
2015/01/27 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
Java获取字符串编码格式实现思路
2022/09/23 Java/Android