我有两个模型要通过 API 公开:每个模型RegionValue都有ForeignKey一个MapAnswer. 我希望rest_framework通过在端点RegionValue内创建 sa 字段来在我们构建的 API 中表示这一点。MapAnswer我的rest_framework序列化程序如下所示:
class RegionValueSerializer(serializers.ModelSerializer):
class Meta:
model = RegionValue
fields = ('region_id', 'value')
class MapAnswerSerializer(serializers.ModelSerializer):
regionvalue_set = RegionValueSerializer(many=True, allow_add_remove=True, required=False)
declined = serializers.BooleanField(required=False)
class Meta:
model = MapAnswer
fields = ('declined', 'regionvalue_set')
从读取的角度来看,这可以正常工作,但是更新regionvalue_set存在一个问题,RegionValue即总是创建新的而不是链接到现有的 RegionValue。如果我在字段中包含“id”,RegionValueSerializer那么它可以解决这个问题,但我不想公开主键!RegionValues 由它们region_id和MapAnswer它们关联的唯一确定。