修改django-rest框架中many=True的序列化程序表示



我有一个模型序列化程序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中的字段,以匹配在前一步中添加的属性。

相关内容

最新更新