我正在尝试使用嵌套序列化程序将当前的“用户”分配给两个模型。class UserAddressSerializer(serializers.ModelSerializer): class Meta: model = UserAddress fields = ('user', 'address_1', 'address_2', 'country', 'state_province', 'city', 'zip_code')class UserProfileSerializer(serializers.ModelSerializer): user_address = UserAddressSerializer() user = serializers.HiddenField(default=serializers.CurrentUserDefault()) class Meta: model = UserProfile fields = ('user', 'first_name', 'middle_name', 'last_name', 'title', 'display_name', 'time_zone', 'user_address', 'default_office') def create(self, validated_data): user = validated_data.pop('user') user_address_data = validated_data.pop('user_address') user_address_object = UserAddress.objects.create( user=user, **user_address_data) user_profile_object = UserProfile.objects.create( user=user, **validated_data) return user我得到的是 Postman 中的这个输出。{ "user_address": { "user": [ "This field is required." ] }}我想知道一种将“用户”传递给这两个模型创建的方法。
1 回答

桃花长相依
TA贡献1860条经验 获得超8个赞
您需要user从以下字段中删除UserAddressSerializer:
class UserAddressSerializer(serializers.ModelSerializer):
class Meta:
model = UserAddress
fields = ('address_1', 'address_2', 'country', # <-- Here
'state_province', 'city', 'zip_code')
添加回答
举报
0/150
提交
取消