我有几个模型来代表用户。用户有一个花园、一个个人资料和一个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}}
添加回答
举报
0/150
提交
取消