django - “Tipo incorrecto. Valor esperado de pk, recibido str "error
En mi django-rest-framework tengo los siguientes modelos:
Básicamente, cada viaje tiene un destino final y puede tener múltiples destinos intermedios.
modelos.py:
class Destination(models.Model):
name=models.CharField(max_length=30)
class Ride(models.Model):
driver = models.ForeignKey('auth.User', related_name='rides_as_driver')
destination=models.ForeignKey(Destination, related_name='rides_as_final_destination')
leaving_time=models.TimeField()
num_of_spots=models.IntegerField()
passengers=models.ManyToManyField('auth.User', related_name="rides_as_passenger")
mid_destinations=models.ManyToManyField(Destination, related_name='rides_as_middle_destination')
serializers.py - RideSerializer
class RideSerializer(serializers.ModelSerializer):
driver = serializers.ReadOnlyField(source='driver.user.username')
class Meta:
model = Ride
fields = ('driver', 'destination', 'leaving_time',
'num_of_spots', 'passengers', 'mid_destinations')
read_only_fields = ('driver', 'passengers', 'mid_destinations')
El problema es - Cuando intento PUBLICAR en / rides / para agregar un viaje, por ejemplo{destination=LA, leaving_time=19:45, num_of_spots=4}
Me sale un error"destination":["Incorrect type. Expected pk value, received str."]}
par de preguntas:
¿Qué es este error? si tengo un destino como clave externa en elPaseo modelo, ¿significa que el destino que estoy agregando ya debe estar en elDestinos ¿mesa?
¿Cómo arreglar este error?