首页 文章

用于POST的Django Rest-Framework嵌套序列化程序

提问于
浏览
1

我正在尝试为User和Profile模型编写嵌套的序列化程序,我正在遵循这个示例:

class UserSerializer(serializers.ModelSerializer):profile = ProfileSerializer()

class Meta:
    model = User
    fields = ('username', 'email', 'profile')

def create(self, validated_data):
    profile_data = validated_data.pop('profile')
    user = User.objects.create(**validated_data)
    Profile.objects.create(user=user, **profile_data)
    return user

但我得到这个错误:

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

我甚至试图将它添加到验证异常中,如下所示:

def get_validation_exclusions(self):
    exclusions = super(ProfileSerializer,
                       self).get_validation_exclusions()
    return exclusions + ['user']

我想通过添加以下内容解决了这个问题:

user = serializers.ModelField(model_field=Profile()._meta.get_field(
        'user'), required=False)

但我还不确定 .

1 回答

  • 0

    我想通过添加以下内容解决了这个问题:

    user = serializers.ModelField(model_field=Profile()._meta.get_field(
            'user'), required=False)
    

    但我还不确定,因为我似乎在其他地方遇到错误 .

相关问题