如何获得以实例作为外键的序列化程序?
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)
如何获得一个以实例作为外键的序列化程序?这是我的模型和序列化器:
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)