我有两个模型要通过 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
那么它可以解决这个问题,但我不想公开主键!RegionValue
s 由它们region_id
和MapAnswer
它们关联的唯一确定。