为了账号安全,请及时绑定邮箱和手机立即绑定

将当前的“用户”作为外键分配给嵌套的序列化程序

将当前的“用户”作为外键分配给嵌套的序列化程序

翻过高山走不出你 2021-09-11 20:13:32
我正在尝试使用嵌套序列化程序将当前的“用户”分配给两个模型。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')


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信