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

 更新时间:2020年05月20日 16:36:19   作者:陌生谁家年少  
这篇文章主要介绍了django 解决自定义序列化返回处理数据为null的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

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

1.未处理时返回

如图上,有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 query查询正常,返回对象为空QuerySet

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

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

问题现象:

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

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

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

解决问题:

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

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

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

相关文章

  • python中update的基本使用方法详解

    python中update的基本使用方法详解

    这篇文章主要介绍了python中update的基本使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 解决Numpy报错:ImportError: numpy.core.multiarray failed

    解决Numpy报错:ImportError: numpy.core.multiarray faile

    这篇文章主要介绍了解决Numpy报错:ImportError: numpy.core.multiarray failed问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Python Unittest ddt数据驱动的实现

    Python Unittest ddt数据驱动的实现

    本文主要介绍了Python Unittest ddt数据驱动的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Keras Convolution1D与Convolution2D区别说明

    Keras Convolution1D与Convolution2D区别说明

    这篇文章主要介绍了Keras Convolution1D与Convolution2D区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 浅谈python jieba分词模块的基本用法

    浅谈python jieba分词模块的基本用法

    本篇文章主要介绍了浅谈python jieba分词模块的基本用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • scrapy在python爬虫中搭建出错的解决方法

    scrapy在python爬虫中搭建出错的解决方法

    在本篇文章里小编给大家整理了一篇关于scrapy在python爬虫中搭建出错的解决方法,有需要的朋友们可以学习参考下。
    2020-11-11
  • Python协程实践分享

    Python协程实践分享

    这篇文章主要分享的是Python协程实践,协程简单来说就是一个更加轻量级的线程,并且不由操作系统内核管理,完全由程序所控制,下文相关介绍需要的朋友可以参考一下
    2022-05-05
  • Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子

    Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子

    这篇文章主要介绍了Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子,本文重点在于scapy有使用上,需要的朋友可以参考下
    2014-10-10
  • 基于Python+Pyqt5开发一个应用程序

    基于Python+Pyqt5开发一个应用程序

    今天给大家带来的是关于Python的相关知识,文章围绕着Python+Pyqt5开发一个应用程序展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Python多线程编程(七):使用Condition实现复杂同步

    Python多线程编程(七):使用Condition实现复杂同步

    这篇文章主要介绍了Python多线程编程(七):使用Condition实现复杂同步,本文讲解通过很著名的“生产者-消费者”模型来来演示在Python中使用Condition实现复杂同步,需要的朋友可以参考下
    2015-04-04

最新评论