django drf to_representation

使用场景

1.需要对结果的中的某个字段进行进一步的处理;

2.模型类中没有的字段,添加到结果中进行响应;

例子

python 复制代码
from django.db import models


class TestModel(models.Model):
   name = models.CharField(_("名称"), max_length=50, null=True, blank=True, default="")
   status = models.CharField(_("状态"), max_length=10, null=True)
   create_by = models.ForeignKey(to='users.User', on_delete=models.SET_NULL, null=True)
   liked_by = models.ManyToManyField(to='users.User')


from rest_framework import serializers


class TestSerializer(serializers.ModelSerializer):
   class Meta:
       model = TestModel
       fields = '__all__'

   def to_representation(self, instance):
       # 调用父类获取当前序列化数据,instance代表每个对象实例obj
       data = super().to_representation(instance)
       # 对原字段的值作修改
       data['create_by'] = instance.create_by.name  # 显示用户表的名称,而不是用户ID
       # 添加新的字段--model没有的字段
       data['total_likes'] = instance.liked_by.count()  # 统计数量
       return data
相关推荐
写代码的【黑咖啡】几秒前
面向对象编程入门:从类与对象到构造函数
开发语言·python
luo_yu_11063 分钟前
安装chroma的时候报错
python·chroma
Daily Mirror6 分钟前
Day 43 训练和测试的规范写法
python
natide7 分钟前
词汇/表达差异-7-Alias覆盖率
人工智能·pytorch·python·深度学习·自然语言处理
艾莉丝努力练剑7 分钟前
Al Ping免费上新:GLM-4.7 && MiniMaxM2.1重磅上线,附独家使用教程
java·大数据·linux·运维·人工智能·python
拉姆哥的小屋8 分钟前
智能婴儿床监控系统
人工智能·python·深度学习
摸鱼仙人~9 分钟前
兼容OpenAI接口服务的实现类
开发语言·python
Knight_AL11 分钟前
Java 可变参数 Object... args 详解:原理、用法与实战场景
java·开发语言·python
智算菩萨11 分钟前
迷宫生成算法:从生成树到均匀随机,再到工程化 Python 实现
python·算法·游戏
深蓝海拓13 分钟前
PySide6从0开始学习的笔记(十二) QProgressBar(进度条)
笔记·python·qt·学习·pyqt