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
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