假设我有一个VehicleSerializer
class VehicleSerializer(serializers.Serializer):
person = PersonSerializer()
class Meta:
model = Vehicle
fields = ('id', 'type', 'person')
我需要使用这个序列化器get和post api。对于get请求,这应该是相同的,但对于post请求,我需要发送这样的数据:
{
"type": "Car",
"person": 1 (the id of the person row)
}
我如何使用相同的车辆序列化器来验证这个请求?因为上面的序列化器将只接受person键的字典值。如有任何帮助,不胜感激。
我认为你需要设置person_id
字段用于写作。
class VehicleSerializer(serializers.ModelSerializer):
person = PersonSerializer(read_only = True)
person_id = serializers.IntegerField(write_only = True)
class Meta:
model = Vehicle
fields = ('id', 'type', 'person', 'person_id')