使用三个嵌套模型创建模型实例? Django 休息 3.1

Creating Model instance with three nested models? Django Rest 3.1

我有 3 个连接模型:User -> UserProfile -> BuyerProfile,当用户创建帐户时,我希望创建一个 User,然后是 UserProfile,然后是 BuyerProfile。我正在使用 ModelSerializer,但是当我使用可浏览的 api 并生成 post 时,我得到:

{
    "userprofile": {
        "user": [
            "This field is required."
        ]
    }
}

关于如何做到这一点有什么想法吗?

class BuyerProfileViewSet(viewsets.ModelViewSet):
    queryset = BuyerProfile.objects.all()
    serializer_class = BuyerProfileSerializer

序列化程序:

    class UserSerializer(serializers.HyperlinkedModelSerializer):
        class Meta:
            model = User
            fields = ('username',)

class UserProfileSerializer(serializers.HyperlinkedModelSerializer):

    user = UserSerializer()

    class Meta:
        model = UserProfile
        fields = ('user', 'bio','prof_type')

class BuyerProfileSerializer(serializers.HyperlinkedModelSerializer):
    userprofile = UserProfileSerializer()

    class Meta:
        model = BuyerProfile
        fields = ('userprofile', 'company','sitename')

将参数 required=False 添加到 UserProfileSerializer 的实例化中:

 userprofile = UserProfileSerializer(required=False)