我有一个模型序列化器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字段是通过调用另一个基于user_id返回profile_url的API来计算的。现在,我能想到的最简单的方法是通过重写to_representation方法并在该方法中调用API并返回它来实现这一点,但这意味着将对每个被序列化的记录进行API调用。在django-rest-framework中有没有办法,我会得到序列化对象的列表,我可以在输出它之前修改它们?
答案 0 :(得分:1)
您应该覆盖视图,以便收集所需的所有数据,将它们注入测试实例,然后序列化整个数据。
确保使用source参数在TestSerializer
中显式声明该字段,以匹配您在前面步骤中添加的属性。