DRF所有序列化器类都继承了BaseSerializer
类, 通过重写该类的 to_representation()
和to_internal_value()
方法可以改变序列化和反序列化的行为,比如给序列化后的数据添加额外的数据,或者对客户端API请求携带的数据进行反序列化处理以及用来自定义序列化器字段。
to_representation()
允许我们改变序列化的输出。to_internal_value()
允许改变我们反序列化的输出。
那么这两个方法该如何使用呢? 小编我今天就带你看一看!
假设我们有如下一个文章模型(Article):
from django.contrib.auth.models import User
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=256)
body = models.TextField()
liked_by = models.ManyToManyField(to=User)
def __str__(self):
return self.title
每个文章资源有 title
, b