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
相关推荐
m0_4708576410 小时前
golang如何实现目录大小统计_golang目录大小统计实现方案
jvm·数据库·python
消晨消晨10 小时前
MONAI初上手——模型构建
pytorch·python·monai
weixin_4440129310 小时前
如何在多实例管理时隐藏MySQL版本信息_安全混淆与配置
jvm·数据库·python
weixin_4597539410 小时前
SQL处理大规模分组聚合的内存限制_调整服务器配置
jvm·数据库·python
Rust语言中文社区10 小时前
【Rust日报】2026-05-14 Pyrefly v1.0 正式发布:快速的 Python 类型检查器和语言服务器
开发语言·后端·python·rust
2601_9561394210 小时前
广州VI设计公司哪家强
linux·运维·服务器·python
databook11 小时前
让数学公式自动推导
python·数学·动效
m0_7335654611 小时前
如何指定PHP版本运行phpMyAdmin_多版本共存配置
jvm·数据库·python
love530love11 小时前
ComfyUI MediaPipe 猴子补丁终极完善版:补全上下文管理与姿态检测兼容
人工智能·windows·python·comfyui·protobuf·mediapipe
小小编程路11 小时前
新手快速学 Python 极简速成指南
开发语言·c++·python