【发布时间】:2018-07-21 04:00:18
【问题描述】:
尝试创建用于获取用户个人资料的 API 方法。问题是有两个与用户相关的表:内置 django User 和来自 allauth 框架的 SocialAccount。我想加入部分应该在序列化程序中,所以经过研究我想出了这个:
from rest_framework import serializers
from django.contrib.auth.models import User
from allauth.socialaccount.models import SocialAccount
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('pk', 'first_name', 'last_name')
class SocialSerializer(serializers.ModelSerializer):
user = UserSerializer(many=False, read_only=True)
class Meta:
model = SocialAccount
fields = ('uid', 'provider', 'user')
它可以工作,但它作为嵌套对象输出:
{
"uid": "",
"provider": "",
"user": {
"pk": 5,
"first_name": "",
"last_name": ""
}
}
我希望它成为一个对象:
{
"uid": "",
"provider": "",
"pk": 5,
"first_name": "",
"last_name": ""
}
【问题讨论】:
-
除了SerializerMethodlField之外没有其他简单的方法可以做到这一点
标签: python django django-rest-framework django-allauth