在序列化程序方法字段中返回嵌套的序列化程序

Amb*_*lon 12 django serialization django-rest-framework

我有一个名为的方法字段followers.我得到了一个关注者列表SerializerMethodField:

followers = serializers.SerializerMethodField()
Run Code Online (Sandbox Code Playgroud)

我想用一个名为的特定序列化器来格式化结果BaseUserSmallSerializer.我该如何实现该方法get_followers来实现这一目标?

Geo*_*cob 36

试试这个;

followers = BaseUserSmallSerializer(source='get_followers', many=True)
Run Code Online (Sandbox Code Playgroud)

要么

您可以在methodfield中使用序列化器;

def get_followers(self, obj):
   followers_queryset = #get queryset of followers
   return  BaseUserSmallSerializer(followers_queryset, many=True).data
Run Code Online (Sandbox Code Playgroud)

  • 如果你得到的序列化程序不是json序列化错误,你可能没有在序列化程序上调用数据属性.`BaseUserSmallSerializer(followers_queryset,many = True).data` (4认同)
  • 好,我知道了。感谢您快速而完整的答案。根据记录,解决方案2是我一直在寻找的。 (2认同)