亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

序列化對象時不顯示 DRF 外鍵字段

序列化對象時不顯示 DRF 外鍵字段

慕婉清6462132 2023-10-06 16:40:43
我有幾個模型來代表用戶。用戶有一個花園、一個個人資料和一個gardener_profile。序列化用戶對象時,會顯示花園和個人資料,但不會顯示gardener_profile。它們都是一對一的關系。在我的 swagger 文檔中,gardener_profile 被識別,但在響應對象中未被識別。這是序列化器:class WorkingHoursSerializer(serializers.ModelSerializer):    gardener_profile = serializers.StringRelatedField(read_only=True)    class Meta:        model = WorkingHours        fields = '__all__'class GardenSerializer(serializers.ModelSerializer):    user = serializers.PrimaryKeyRelatedField(read_only=False, queryset=GardreamUser.objects.all())    class Meta:        model = Garden        fields = ['id', 'url', 'grass', 'beds', 'terrace', 'tracks', 'entry', 'user']class GardenerProfileSerializer(serializers.ModelSerializer):    user = serializers.PrimaryKeyRelatedField(read_only=False, queryset=GardreamUser.objects.all())    working_hours = WorkingHoursSerializer(many=True)    class Meta:        model = GardenerProfile        fields = ['id', 'url', 'working_radius', 'salary', 'iban', 'contract', 'user', 'working_hours']    def create(self, validated_data):        working_hours_data = validated_data.pop('working_hours')        gardener_profile = GardenerProfile.objects.create(**validated_data)        for working_hour_data in working_hours_data:            WorkingHours.objects.create(gardener_profile=gardener_profile, **working_hour_data)        return gardener_profileclass UserProfileSerializer(serializers.ModelSerializer):    user = serializers.StringRelatedField(read_only=True)    class Meta:        model = UserProfile        fields = '__all__'class UserSerializer(serializers.HyperlinkedModelSerializer):    profile = UserProfileSerializer(required=True)    garden = GardenSerializer(read_only=True)    gardener_profile = GardenerProfileSerializer(read_only=True)    class Meta:        model = CustomUser        fields = ['id', 'url', 'username', 'email', 'first_name', 'last_name', 'password', 'groups', 'profile',                  'garden', 'gardener_profile']        extra_kwargs = {'password': {'write_only': True}}
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

我找到了解決方案:添加related_name='gardener_profile'到 GardenerProfile 的用戶字段



查看完整回答
反對 回復 2023-10-06
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號