DRF的Serializer和ModelSerializer

一般的Serializer要自己手动添加各个字段:

class GoodsSerializer(serializers.Serializer):
    # 这里各个字段都会放到validate_data里
    def update(self, instance, validated_data):
        pass

    def create(self, validated_data):
        return Goods.objects.create(**validated_data)

    name = serializers.CharField(required=True, max_length=100)
    click_num = serializers.IntegerField(default=0)
    goods_front_image = serializers.ImageField()
    # ...

使用ModelSerializer可以免去这种繁琐的一个个添加字段的方式:

class GoodsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Goods
        fields = (‘name‘, ‘click_num‘, ‘market_price‘, ‘add_time‘)

使用fields = "__all__"即可将所有字段都序列化。

原文地址:https://www.cnblogs.com/LiuZhiHao/p/10274014.html

时间: 2024-11-08 01:09:05

DRF的Serializer和ModelSerializer的相关文章

一,Serializer和ModelSerializer

1.REST Framework概述 Django REST framework是一套基于Django的REST框架,是一个用于构建Web API的功能强大且灵活的工具包. RESTful 简述 Representational State Transfer(REST),是一种架构样式,定义了一套用于创建WEB服务的约束.当前WEB开发趋势就是前端层出不穷,为了保证一个后台同时适用于多个前端,需要一种统一的机制或API,而RESTful API是目前前后端分离的最佳实践. 为什么需要前后端分离?

DRF ---- 三流 Serializer(偏底层)

目录 三流:补充知识点 序列化家族 Serializer(偏底层) 1.instance 以及 data 参数 2. 序列化 自定义serializer 像 gender和 icon字段 序列化方法: 视图层 many 对象.data view.py 3.反序列化 自定义serializer validate_字段名 局部钩子 validate 全局钩子 补充 :validators 重写create方法 视图层 ser对象.is_valid() 参数: raise_exception=True

DRF lazy Serializer

1 class LazySerializer: 2 def __init__(self, cls_name, **kwargs): 3 self.cls_name = cls_name 4 self.kwargs = kwargs 5 6 class empty: 7 pass 8 9 def __call__(self, instance=None, data=empty, **kwargs) -> serializers.Serializer: 10 return type(self.cls

drf中的序列化家族

序列化家族:Serializer类;modelSerializer类和ListSerializer类 """1.Serializer类:底层序列化-了解的类 重点:单表序列化 2.modelSerializer类:模型序列化类-核心类 重点:多表序列化 3.ListSerializer类:群操作序列化类-辅助类 重点:辅助完成单表多表群增群改操作""" import sys # 标准输出流 sys.stdout.write('123\n') sy

0801 RESTAPI设计,DRF 序列化

1.内容回顾    1.restframework serializer(序列化)的简单使用                QuereySet([obj,obj,obj])  -->  JSON格式数据            安装和导入:        pip install djangorestframework                from rest_framework import serializer                1.创建一个类,类一定要继承serialize

ModelSerializer 和 serializers

serializers序列化:普通字段 # 一.定义一个反序列的类 from rest_framework import serializers from rest_framework.response import Response # 为queryset, model对象做序列化,只要你定义了name和addr我都能给你反序列化 class PublishSerializers(serializers.Serializer): name = serializers.CharField() a

ModelSerializer字段验证的扩展操作

def validate_字段名(self, value),单一字段校验 from rest_framework import serializers from rest_framework import exceptions from .. import models class BidModelSerializer(serializers.ModelSerializer): username = serializers.CharField(source='user.nickname', re

Serializers 序列化组件

为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到的数据进行序列化. 接下来我们看下django序列化和rest_framework序列化的对比~~ Django的序列化方法 # 第一版 用values以及JsonResponse实现序列化(发现就简单的数据拿出来还这么费劲) class BookView(View): def get(self,

$Django 序列化组件

1 序列化组件 from app01 import models from rest_framework import serializers from rest_framework.serializers import Serializer,ModelSerializer from django.http import JsonResponse class auth(Serializer): name=serializers.CharField() age=serializers.CharFi