【问题标题】:Modify serializer representation for many=True in django rest framework在 django rest 框架中修改 many=True 的序列化器表示
【发布时间】:2015-12-24 09:41:06
【问题描述】:

我有一个模型序列化器 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 中有没有一种方法,我可以在其中获取序列化对象的列表,并且可以在输出之前对其进行修改?

【问题讨论】:

    标签: django-rest-framework


    【解决方案1】:

    您应该覆盖视图,以便收集所需的所有数据,将它们注入测试实例,然后序列化整个数据。 确保使用 source 参数显式声明 TestSerializer 中的字段以匹配您在前面步骤中添加的属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 2015-10-29
      • 2020-05-08
      • 2015-07-06
      • 1970-01-01
      相关资源
      最近更新 更多