man*_*eak 4 python django django-rest-framework django-allauth
我有一个使用 Django REST Framework 和 Django-allauth 的 Django 应用程序。现在,我正在尝试检索社交帐户中存在的头像 URL。但是,我在形成序列化器时遇到问题。
对于背景信息,allauthsSocialAccount通过外键与用户模型相关:
class SocialAccount(models.Model):
user = models.ForeignKey(allauth.app_settings.USER_MODEL)
# the method I'm interested of
def get_avatar_url(self):
...
Run Code Online (Sandbox Code Playgroud)
现在,这是我目前拥有的序列化器:
class ProfileInfoSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'first_name', 'last_name')
Run Code Online (Sandbox Code Playgroud)
最后,我想要一个额外的字段来avatar_url获取模型中方法调用的结果SocialAccount。我怎么做?
我找到了一个使用以下解决方案的解决方案SerializerMethodField:
class ProfileInfoSerializer(serializers.ModelSerializer):
avatar_url = serializers.SerializerMethodField()
def get_avatar_url(obj, self):
return obj.socialaccount_set.first().get_avatar_id()
class Meta:
model = User
fields = ('id', 'first_name', 'last_name', 'avatar_url')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |