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读写Excel文件方法介绍
Nov 22 Python
python统计cpu利用率的方法
Jun 02 Python
python采集百度百科的方法
Jun 05 Python
Python 数据结构之旋转链表
Feb 25 Python
Python基础之getpass模块详细介绍
Aug 10 Python
python实现C4.5决策树算法
Aug 29 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
Django csrf 两种方法设置form的实例
Feb 03 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
python中time tzset()函数实例用法
Feb 18 Python
pd.DataFrame中的几种索引变换的实现
Jun 16 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP实现图片压缩
2020/09/09 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
js实现旋转木马效果
2017/03/17 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
python常用函数详解
2016/09/13 Python
使用Python更换外网IP的方法
2018/07/09 Python
kali中python版本的切换方法
2019/07/11 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
python实现邮件循环自动发件功能
2020/09/11 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
竞选班干部的演讲稿
2014/04/24 职场文书
签约仪式策划方案
2014/06/02 职场文书
私人委托书格式
2014/09/10 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
机关作风建设自查报告
2014/10/22 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis