我有一个模型序列化程序TestSerializer。
class Test(models.Model):
name = models.CharField(max_length=255)
email = models.EmailField(max_length=255)
class TestSerializer(serializers.ModelSerializer):
class Meta:
model = Test
fields = ('name', 'email')
我的问题是,我想在序列化的输出数据中添加一个名为"profile_url"的字段。这个profile_url字段是通过调用另一个API来计算的,该API返回基于user_id的profile.url。现在,我能想到的最简单的方法是重写to_representation方法,并在该方法中调用API并返回它,但这意味着将对每个序列化的记录进行API调用。在django-rest框架中,有没有一种方法,我可以获得序列化对象的列表,并在输出之前对其进行修改?
您应该覆盖视图,以便收集所需的所有数据,将它们注入回测试实例,然后序列化整个数据。确保使用源参数显式声明TestSerializer
中的字段,以匹配在前一步中添加的属性。