serialization - django - "Incorrect type. Expected pk value, received str" error -
i django-rest-framework have following models:
basically every ride has 1 final destination , can have multiple middle destinations.
models.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')
problem - when trying post /rides/ in order add ride - example {destination=la, leaving_time=19:45, num_of_spots=4}
i error "destination":["incorrect type. expected pk value, received str."]}
couple of questions:
what error? if have destination foreign key in ride model, mean destination adding has in destinations table?
how fix error?
the issue passing name
of related destination
object serializer, instead of passing pk
/id
of destination
object. django rest framework seeing , complaining, because can't resolve la
object.
it sounds may looking a slugrelatedfield
, allows identify objects slug (la
in case) instead of primary keys.
Comments
Post a Comment