【发布时间】:2020-06-22 14:21:23
【问题描述】:
如何获得一个带有实例作为外键的序列化程序?这是我的模型和序列化器:
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__'
当我尝试验证序列化程序时,我收到一条错误消息“此字段必须是唯一的”:
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 实例验证此序列化程序?
【问题讨论】:
标签: python-3.x django django-rest-framework django-serializer