如何获得以实例作为外键的序列化程序?

How do I get a serializer with an instance as a Foreign key?

如何获得一个以实例作为外键的序列化程序?这是我的模型和序列化器:

class ChargeSchedule(models.Model):
    vehicle = models.OneToOneField(Vehicle, on_delete=models.PROTECT, related_name='vehicle_charge_schedule')
    max = models.FloatField()
    min = models.FloatField()


class ChargeScheduleSerializer(serializers.ModelSerializer):
    class Meta:
        model = ChargeSchedule
        fields = '__all__'

当我尝试验证序列化程序时,我收到一条错误消息 'This field must be unique':

class ChargeScheduleViewSet(ModelViewSet):
    model = ChargeSchedule
    serializer_class = ChargeScheduleSerializer

    def create(self, request, *args, **kwargs):
        # request.data = {'min': 10, 'max': 100}
        vehicle = request.user.vehicle
        request.data['vehicle'] = vehicle.id
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True) # FAILS HERE, {ValidationError}{'vehicle': [ErrorDetail(string='This field must be unique.', code='unique')]}

如何使用 Vehicle 实例验证此序列化程序?

试试这个:

def create(self, request, *args, **kwargs):
    # request.data = {'min': 10, 'max': 100}
    vehicle = request.user.vehicle
    ser_data = request.data
    ser_data['vehicle'] = vehicle.id
    serializer = self.get_serializer(data=ser_data)
    serializer.is_valid(raise_exception=True)