How do I get a serializer with an instance as a Foreign key? Here is my model and serializer:
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__'
When I try to validate the serializer I get an error saying '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')]}
How can I validate this serializer using the Vehicle instance?
Try this:
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)