首页 > 其他分享 >模型类序列化器的声明和操作使用

模型类序列化器的声明和操作使用

时间:2022-08-31 16:14:12浏览次数:65  
标签:student 声明 模型 value Student 序列化 data class

ModelSerializer与常规的Serializer相同,但额外提供了:

·基于模型类自动生成一系列字段

·基于模型类自动为Serializer生成validators,比如unique_together

·包含默认的create()和update()的实现

 

序列化器:

from rest_framework import serializers
from .models import Student

class StudentModelSerializer(serializers.ModelSerializer):
    #1.转换字段的声明
    #2.声明调用的模型信息
    class Meta:
        model=Student #必填
        fields=["id","name","sex","age","classmate"]#必填,可以是字符串"__all__",列表,元组
        read_only_fields=["id"]#选填,只读字段列表
        extra_kwargs={#选填,字段额外选项声明
            "age":{
                "max_value":20,
                "min_value":5,
                "error_messages":{
                    "max_value":"年龄必须小于等于20",
                    "min_value":"年龄必须大于等于5",
                }
            }
        }
    #3.验证代码对象的方法
    #4.操作模型的方法

视图:

一条数据:

class StudentModelView(View):
    def get(self,request):
        # 1.获取数据集
        student=Student.objects.last()
        #2.实例化序列化器,获得序列化对象
        serializer=StudentModelSerializer(student)
        #3.获取转化后的数据
        data=serializer.data
        #4.响应数据
        return JsonResponse(data=data,status=200)

多条数据:

class StudentModelView(View):
    def get(self,request):
        # 1.获取数据集
        student=Student.objects.all()
        #2.实例化序列化器,获得序列化对象
        serializer=StudentModelSerializer(student,many=True)
        #3.获取转化后的数据
        data=serializer.data
        #4.响应数据
        return JsonResponse(data=data,status=200,safe=False)

 

标签:student,声明,模型,value,Student,序列化,data,class
From: https://www.cnblogs.com/fuck-Innovative-training/p/16642689.html

相关文章

  • 2 计算模型与复杂性类 | 密码协议课程笔记
    1计算模型1:图灵机1.1图灵机的定义图灵机是一个简洁的计算模型。我们可以将图灵机视为拥有一个无限长、可以双向移动的工作带的有限自动机。在初始阶段,工作带开始的几......
  • 【翻译】一个成功的 Git 分支模型
    【翻译】一个成功的Git分支模型在这篇文章中,我将向你们介绍一个开发模型,早在差不多一年前,我已经将这个模型应用于我的多个项目,而事实证明,这个模型是非常成功的。其实这......
  • 序列化器:反序列换-添加和更新数据操作
    前端传到后端需要反序列化,后端传到前端需要序列化正常需要serializer两次:fromdjango.viewsimportViewfrom.modelsimportStudentfrom.serializersimportStude......
  • 解决通配符的匹配很全面, 但无法找到元素 'aop:config' 的声明
    这是因为在applicationContext.xml文件中没有添加对应的地址http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"......
  • LIME 模型解释器
    LIME即是LocalInterpretableModel-agnosticExplanations模型解释器,简单来说就是将每个变量的重要性可视化,集成学习xgb等有feature_importances_,还有专门的SHARP,那么LIM......
  • 面向对象分析设计之一--三个模型
    1.对象模型描述系统的静态结构,包括类和对象,它们的属性和操作,以及它们之间的关系。涉及UML图:类图、对象图2.动态模型着重于系统的控制逻辑,考察在任何时候对......
  • 利用Hugging Face中的模型进行句子相似性实践
      HuggingFace是什么?它作为一个GitHub史上增长最快的AI项目,创始人将它的成功归功于弥补了科学与生产之间的鸿沟。什么意思呢?因为现在很多AI研究者写了大量的论文和开源......
  • 机器学习模型中的无意识偏差
    机器学习模型中的无意识偏差您听说过多元化的团队可以创造更好的产品,但您是否看到它以数据驱动的方式得到证明?无意识的偏见影响着我们所有人。我们都在日常生活中做出假......
  • [网鼎杯 2020 朱雀组]phpweb-1|反序列化
    1、打开界面之后界面一直在刷新,检查源代码也未发现提示信息,但是在检查中发现了两个隐藏的属性:func和p,抓包进行查看一下,结果如下:2、对两个参数与返回值进行分析,我们使用d......
  • 什么是盒模型,如何进行不同盒模型的切换
    1、什么是盒子模型具备内容(content)、内边距(padding)、边框(border)、外边距(margin)这些属性2、盒模型有两种标准盒模型(W3C标准的盒子模型,大部分浏览器支持)怪异盒模型(......