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
相关推荐
淮北494几秒前
pip虚拟环境包的问题
开发语言·python·pip
m0_7066532336 分钟前
用Python批量处理Excel和CSV文件
jvm·数据库·python
Yvonne爱编码37 分钟前
JAVA数据结构 DAY5-LinkedList
java·开发语言·python
witAI40 分钟前
**AI漫剧制作工具2025推荐,零成本实现专业级动画创作*
人工智能·python
qq_423233902 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
林深现海2 小时前
【刘二大人】PyTorch深度学习实践笔记 —— 第四集:反向传播(凝练版)
pytorch·python·numpy
菩提树下的凡夫2 小时前
Python 环境管理工具
开发语言·python
索荣荣3 小时前
JavaToken实战指南:从原理到应用
开发语言·python
Albert Edison3 小时前
【Python】函数
java·linux·python·pip
2401_836563183 小时前
用Python读取和处理NASA公开API数据
jvm·数据库·python