当前位置: 首页 > article >正文

快速入手-基于Django-rest-framework的ModelSerializer模型序列化器(三)

1、基础代码

快速入手-基于Django-rest-framework的serializers序列化器(二)-CSDN博客

2、基于第一步的代码改成模型序列化 

3、只需要修改serializer.py文件即可

from django.shortcuts import render, HttpResponse
from rest_framework.views import APIView

from .models import Link

from rest_framework import serializers


class LinkSerializerBak(serializers.Serializer):
    # 对外展示或操作的字段,或者转换后的字段(比如name对外展示为mingzi)
    id = serializers.CharField(max_length=300)
    mingzi = serializers.CharField(max_length=300, source="name")
    link = serializers.CharField(max_length=100)
    sorting = serializers.IntegerField(default=100)

    # 新增保存数据过程
    def create(self, validated_data):
        new_link = Link.objects.create(**self.validated_data)
        return new_link

    # 更新保存数据过程
    def update(self, instance, validated_data):
        Link.objects.filter(pk=instance.id).update(**validated_data)
        gengxin = Link.objects.get(pk=instance.pk)
        return gengxin

################模型序列化###########################
# 和模型直接耦合,确定不灵活,上面的是自己写
class LinkSerializer(serializers.ModelSerializer):
    # 自定义接口字段名称source="name"是真实的,mingzi是解耦的名称
    mingzi = serializers.CharField(max_length=300, source="name")

    class Meta:
        # 指定关联哪个模型集
        model = Link
        # fields = "__all__"
        # 排除去掉哪些字段
        exclude = ["gid", "name"]

4、其他配置、视图等都不需要修改

5、测试方法参考第二节的测试即可。 


http://www.kler.cn/a/612401.html

相关文章:

  • 华为、浪潮、华三链路聚合概述
  • python使用cookie、session、selenium实现网站登录(爬取信息)
  • 用 Python 也能做微服务?
  • Vue+SpringBoot:整合JasperReport作PDF报表,并解决中文不显示问题
  • OPENCV数字识别(非手写数字/采用模板匹配)
  • jEasyUI 创建自定义视图
  • EMC知识学习二
  • 路由选型终极对决:直连/静态/动态三大类型+华为华三思科配置差异,一张表彻底讲透!
  • 【Ai】--- 可视化 DeepSeek-r1 接入 Open WebUI(超详细)
  • 论文阅读笔记——ST-4DGS,WideRange4D
  • Kafka简单的性能调优
  • 使用 PowerShell 脚本 + FFmpeg 在 Windows 系统中批量计算 MP4视频 文件的总时长
  • python生成一个16k的音频正弦波数据
  • vue3中,route4,获取当前页面路由的问题
  • 力扣HOT100之普通数组:238. 除自身以外数组的乘积
  • 【问题解决】Postman 请求报错 500 之 Request processing failed
  • Vue 中为什么data属性是一个函数而不是一个对象?
  • 深入解析 MyBatis-Plus 批量操作:原理、实现与性能优化
  • vue 3 深度指南:从基础到全栈开发实践
  • cocos creator 笔记-路边花草