Django allauth SocialAccount 模型的 "extra_data" 字段

Django allauth SocialAccount model's "extra_data" field

SocialAccount 模型在 table 中有 extra_data 字段。而这个模型跟Usertable有关系。当我检索用户 table 时,试图将 SocialAccount 添加到 User 但遇到问题...

serializers.py

from rest_framework import serializers
from django.contrib.auth.models import User
from allauth.socialaccount.models import SocialAccount

已更新

我更新了 serializers.py 现在我可以实现将 extra_data 添加到 UserDisplaySerializer.

class SocialAccountExtraDataSerializer(serializers.ModelSerializer):
  class Meta:
    model = SocialAccount
    fields = ["extra_data"]
    depth = 1


class UserDisplaySerializer(serializers.ModelSerializer):
  extra_data_set = serializers.SerializerMethodField()

  class Meta:
    model = User
    fields = ["username", "extra_data_set"]
    depth = 1

  def get_extra_data_set(self, instance):
    extra_data = instance.socialaccount_set.all()[0].extra_data
    return SocialAccountExtraDataSerializer(extra_data, many=True).data

但是这次 extra_data 字段带有那些 空对象。 有六个对象像预期的那样但是空的?

我应该如何将 SocialAccount 的 extra_data 顺利插入到 User 序列化程序中作为字段...

我通过不序列化 return 之前的数据解决了问题。

def get_extra_data_set(self, instance):
    extra_data = instance.socialaccount_set.all()[0].extra_data
    # below serialize and return the data 
    return SocialAccountExtraDataSerializer(extra_data, many=True).data

我直接return extra_field而不是上面的。

def get_extra_data(self, instance):
    if instance.is_superuser is not True:
        extra_data = instance.socialaccount_set.all()[0].extra_data
        return extra_data