DRF - message in ManyToMany field

In my django app:

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')

      

serializer:

class RideSerializer(serializers.ModelSerializer):
    driver = serializers.ReadOnlyField(source='driver.username')

    class Meta:
        model = Ride
        fields = ('id', 'driver', 'destination', 'leaving_time',
                  'num_of_spots', 'passengers', 'mid_destinations')
        read_only_fields = ('id', 'driver', 'passengers', 'mid_destinations')

      

As you can see mid_destinations is a ManyToMany field.

My question is , how can I post a POST to a ManyToMany field?

to regular fields i can just POST with json like this from my android app :

{ "destination" : "LA", "num_of_spots" : "3", "leaving_time" : "14:35"}

etc.

how can I post a POST to a ManyToMany field?

Thanks in advance!

+3


source to share


1 answer


Two steps: 1. Remove 'mid_destinations'

from the list read_only_fields

 2. Send POST data, for example{"mid_destinations": ["LA", "SF", "SD"], ...}



I am assuming you are using DRF 3.

0


source







All Articles