6

我已经定义了一个用户配置文件模型,但希望有一个 api 端点将所有用户数据保存到两个模型中。我的意思是,我正在使用用户模型,并且我有一个定义如下的用户配置文件模型

class UserProfile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)
    biography = models.TextField()

当我定义用于创建新用户的序列化程序时,如何让它将数据序列化到用户模型和 userProfile 模型中?

4

1 回答 1

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来更新(或执行其他操作)用户配置文件及其用户实例。

于 2013-05-08T02:04:46.710 回答