serializer的两大特征

1.校检数据

2.序列化

首先创建apps/Serializer.py

在序列化里面导包

from rest_framework import serializers

from user.models import User

在Serializer里面写入

Serializer ,ModelSerializer

def address_validate(data):

# data:是用户提交的地址这个字段的数据(河南省 郑州市)

# 独立校验器

# raise serializers.ValidationError('请填写实际地址')

# 有错就抛出异常 # 没错就返回数据

return data

class UserSerializer(serializers.ModelSerializer):

# 1.独立校验器:重新设定字段, 替换掉模型中的设定, 重新设定地址的长度为5

# address_validate是自定义的数据校验1函1数1

address=serializers.CharField(max_length=255,min_length=5,validators=[address_validate])

# 2.单一字段验证(validate_字段名), 验证地址
def valudate_address(self,data):
if data=='测试':
raise serializers.ValidationError('请填写实际地址') # 有错就抛出异常
return data #没错就返回 # def validate_phone(self, data):
# # 不符合手机号格式 # raise serializers.ValidationError('手机号格式不正确')
# model = self.root.Meta.model
# num = model.objects.filter(phone=data).count()
# if num > 0:
# raise serializers.ValidationError('手机号已存在')
# return data # 3.所有属性验证器
def validate(self, attrs):
return attrs# 有问题报错
# 没问题返回数据
# attrs:{"username":"zhangsan", "phone":"18538752511", ....}
# 所有属性验证器 # self.context 中有request和view上下文
# self.context['view'].action 可以取到动作 # attrs 是需要序列化的数据
# raise serializers.ValidationError('xxx错误') class Meta:
model=User #指定表
# fields = ('id', ) # 临时添加字段也需要写在这里
fields='__all__' #所有字段
# exclude = ['id'] # 排除 id 字段
# read_only_fields = ('id',) # 指定字段为 read_only, # 扩展address: extra_kwargs = {} # 局部替换某些字段的设定, 或者新增设定
extra_kwargs = {
"address": {
"min_length": 5, # 给地址增加 最小长度限制
"default": '默认测试地址',
# 增加默认值
}}

继承ModelSerializer

        class Meta:
model = User
fields = ('id', 'username', 'is_active') # 临时添加字段也需要写在这里 # fields = '__all__' # 所有字段```

Django----Serializer序列化的更多相关文章

  1. Django:前后端分离 djangorestframework开发API接口 serializer序列化认证组件

    参考:https://blog.csdn.net/zhangmengran/article/details/84887206 目的: 使用serializer序列化器将QuerySet数据序列化为js ...

  2. django rest_framework 序列化组件详解

    为什么要用序列化组件 当我们做前后端分离的项目,我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到 ...

  3. 从django的序列化到rest-framework 序列化

    1.利用Django的view实现返回json数据 from django.views.generic import View from goods.models import Goods class ...

  4. 关于Django的序列化

    阅读目录 Django支持的序列化格式 Django的序列化 Django支持的序列化格式 1 2 3 4 Identifier Information xml Serializes to and f ...

  5. DRF框架之Serializer序列化器的反序列化操作

    昨天,我们完成了Serializer序列化器的反序列化操作,那么今天我们就来学习Serializer序列化器的最后一点知识,反序列化操作. 首先,我们定要明确什么是反序列化操作? 反序列化操作:JOS ...

  6. django的序列化

    关于django的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的Json格式 两种方法: 方法一:serializers: 缺点就是只能应用于对象 "&q ...

  7. Rest_framework Serializer 序列化 (含源码浅解序列化过程)

    目录 Rest_framework Serializer 序列化 序列化与反序列化中不得不说的感情纠葛 三角恋之 save/update/create 四角恋之 序列化参数instance/data/ ...

  8. Django 之 序列化

    Django之序列化 关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式. serializers 1 2 3 4 5 from dj ...

  9. 【Django】序列化

    Django中序列化主要应用于将数据库中检索的数据返回给客户端用户,特别是Ajax请求一般返回为Json格式. * 1.from django.core import serializers** fr ...

  10. UNITY Serializer 序列化 横向对比

    UNITY Serializer 序列化 横向对比 关于序列化,无论是.net还是unity自身都提供了一定保障.然而人总是吃着碗里想着锅里,跑去github挖个宝是常有的事.看看各家大佬的本事.最有 ...

随机推荐

  1. 数据库本地data source

    数据源表示数据库所在设备的ip地址或名称,基本上有以下几种写方法 data source = (local) data source = "127.0.0.1" data sour ...

  2. Maven的介绍及使用

    一.Maven简介 Maven 是一个项目管理工具,可以对 Java 项目进行构建.依赖管理,是一个自动化构建工具. 自动化构建工具:将原材料(java.js.css.html....)->产品 ...

  3. deepin 20 镜像源

    deepin 20 镜像源 ## Generated by deepin-installerdeb [by-hash=force] https://community-packages.deepin. ...

  4. 解决js中对象中属性是数组中对应元素,不能使用点数组元素(.数组[i])来获取value值来循环,属性不能是数组元素array[i]的问题

    数据类型 //示例 var tags1avg= ['rg2_crt_001_001_avg', 'rg2_crt_001_002_avg', 'rg2_crt_001_003_avg', 'rg2_c ...

  5. W3C中不同标准的含义

    学习CSS/HTML的过程中,当出现释义冲突时,W3C(万维网联盟)官网所陈列的技术标准是最核心的判断参考.但是新手在查阅W3C标准索引页面时,会发现同一个属性或者模型会出现多个不同的阶段规范展示结果 ...

  6. 微信公众号Makrdown编辑器,语法你懂吗?

    感谢 WeChat Format 源码: https://github.com/lyricat/wechat-format! 其他工具推荐: 微信公众号编辑器 Makrdown: https://md ...

  7. 响应式关系数据库处理R2DBC

    目录 简介 R2DBC介绍 项目依赖 创建ConnectionFactory 创建Entity Bean 初始化数据库 获取所有的用户 Prepare Statement 事务处理 WebFlux使用 ...

  8. Idea eclipse 快捷键版

    查找/搜索 打开搜索界面     Ctrl+H 查找类文件             Ctrl+Shift+T 最近访问上一个文件      Ctrl+Alt+ ← 最近访问下一个文件        C ...

  9. 【C++】sort函数使用方法

    一.sort函数 1.sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以实现对数据的排序,但是sort函数是如何实现的,我们不用考 ...

  10. 还不懂spring中的bean的话,你一定得好好看看这篇文章

    bean的作用域 bean的生命周期 bean的装配 代码 实体类 package com; import java.util.List; public class User { private St ...