我已经定义了一个用户配置文件模型,但希望有一个api端点将所有用户数据保存到两个模型中。我的意思是,我使用的是用户模型,我的userprofile模型定义如下
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
biography = models.TextField()
当我定义一个用于创建新用户的序列化程序时,如何让它将数据序列化为用户模型和userProfile模型?
答案 0 :(得分:18)
您只需为每个定义一个序列化程序,并将其中一个附加到另一个,如下所示:
from rest_framework.serializers import ModelSerializer
class UserSerializer(ModelSerializer):
"""
A serializer for ``User``.
"""
class Meta(object):
model = User
class UserProfileSerializer(ModelSerializer):
"""
A serializer for ``UserProfile``.
"""
user = UserSerializer()
class Meta(object):
model = UserProfile
然后,您可以使用UserProfileSerializer
更新(或执行其他操作)用户个人资料及其用户实例。