首页 > 其他分享 >Django-drf-序列化器高级用法之SerializerMethodField

Django-drf-序列化器高级用法之SerializerMethodField

时间:2023-01-02 15:13:44浏览次数:42  
标签:serializers get joined Django SerializerMethodField import 序列化

在Drf框架中的serializers.py序列化中,

SerializerMethodField字段是一个只读字段。它通过调用附加到的序列化程序类上的方法来获取其值。它可用于将任何类型的数据添加到对象的序列化表示中。

SerializerMethodField(method_name=None)

method_name - 要调用的序列化程序上方法的名称。如果不包含此默认值get_<field_name>。
method_name参数引用的序列化方法应该接受一个参数(除了self),它是被序列化的对象。它应该返回您想要包含在对象的序列化表示中的任何内容。

示例:

  from django.contrib.auth.models import User
  from django.utils.timezone import now
  from rest_framework import serializers
  class UserSerializer(serializers.ModelSerializer):
      days_since_joined = serializers.SerializerMethodField()
      class Meta:
          model = User
          
      def get_days_since_joined(self, obj):
          return (now() - obj.date_joined).days
  ```

注意:

1.SerializerMethodField这个是一个只读字段,也就是read_only=True;

2.在进行序列化时候,要写一个get_<field_name>方法进行。

标签:serializers,get,joined,Django,SerializerMethodField,import,序列化
From: https://www.cnblogs.com/shaoyishi/p/17019922.html

相关文章

  • 第十二章《文件与I/O流》第4节:对象序列化
    ​对象序列化和反序列化是Java程序中经常涉及的操作,Java语言提供了专门用于序列化对象的ObjectOutputStream类和用于反序列化的ObjectInputStream类,这使得Java语言完成序列......
  • django框架(07)
    图书管理系统讲解1.表设计 先考虑普通字段再考虑外键字段数据库迁移、测试数据录入2.首页展示3.书籍展示4.书籍添加5.书籍编辑 后端如何获取用户想要编辑的数......
  • Django框架7
    今日内容概要聚合查询分组查询F与Q查询今日内容详细聚合查询'''MySQL中常用的聚合函数 Max Min Sum CountAvg 需要结合分组一起使用'''在ORM中支持单独使用......
  • django11
    django中间件三个了解的方法1.process_view 路由匹配成功之后执行视图函数/类之前自动触发(顺序同process_request)2.process_exception 视图函数/类执行报错自动触发(......
  • Django框架7
    今日内容概要Q查询进阶操作ORM查询优化ORM事务操作ORM常用字段类型ORM常用字段参数Ajax请求(待定)今日内容详细Q查询进阶操作fromdjango.db.modelsimportQq......
  • Django框架10
    今日内容概要django中间件三个了解的方法基于django中间件实现功能的插拔式设计cookie与session简介django操作cookiedjango操作session今日内容详细django中间件......
  • Django框架9
    今日内容概要forms组件渲染标签forms组件展示信息forms组件校验补充forms组件参数补充forms组件源码剖析modelform组件django中间件今日内容详细forms组件渲染......
  • django12
    csrf跨站请求伪造钓鱼网站:模仿一个正规的网站让用户在该网站上做操作但是操作的结果会影响到用户正常的网站账户但是其中有一些猫腻 eg:英语四六级考试需要网上先缴......
  • Django框架11
    今日内容概要csrf跨站请求伪造csrf相关校验策略CBV添加装饰器的多种方式auth认证模块今日内容详细csrf跨站请求伪造钓鱼网站:模仿一个正规的网站让用户在该网站......
  • Django基础
    Django基础一、Django简介以及基本使用二、Django与数据库连接三、Django路由层四、Django视图层五、Django模板层六、Django模型层七、Django组件之Ajax请求八、......