В моем Джанго приложение:DRF - сообщение в поле ManyToMany
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')
Как вы можете видеть, mid_destinations это поле ManyToMany.
Мой вопрос: Как я могу отправить POST в поле ManyToMany?
к обычным полям, я могу просто POST с JSON как это, с моей андроид приложение:
{ "destination" : "LA", "num_of_spots" : "3", "leaving_time" : "14:35"}
т.д.
как я отправляю в поле ManyToMany?
Спасибо заранее!
спасибо за ваш ответ. причина «mid_destination» - это поле read_only - я не хочу, чтобы пользователь должен был помещать поле mid_destination, то есть - пользователь должен иметь возможность создавать Ride WITHOUT с полем mid_destinations и WITH с полем mid_destination. могу ли я просто отправить пустой массив, когда у пользователя нет значения для него? –
@OfekAgmon - Да, пустой массив - это именно то, что должен отправить клиентский конец, когда пользователь не предоставляет никакого значения mid_destination. – tamakisquare
@tamakisquare - Я думаю, что данные будут похожи на {"destination": "LA", "num_of_spots": "3", "leave_time": "14:35", "mid_destinations": ["SF", "SD"] , ...} –