Друзья, доброго времени суток!
Есть небольшая проблема!
Вот у меня есть моделька:
class Loko(models.Model):
"""Тип и номер локомотивов"""
SECTION= 'section'
ELEMENT = 'element'
LOKO_TYPES = (
(SECTION, 'родитель'),
(ELEMENT, 'элемент')
)
name=models.CharField("Название",max_length=100)
element_type=models.CharField("Тип элемента", max_length=50, choices=LOKO_TYPES)
section=models.ForeignKey('self', on_delete=models.SET_NULL, verbose_name="Родитель", blank=True, null=True, related_name="children")
date_start=models.IntegerField("Дата создания",blank=True, null=True)
date_update=models.IntegerField("Дата обновления",blank=True, null=True)
region=models.ManyToManyField(Region, verbose_name="Регион")
active=models.BooleanField("Активен",null=True, default=True)
def __str__(self):
return self.name
class Meta:
verbose_name = "Локомотив"
verbose_name_plural = "Локомотивы"
Есть сериализатор:
class LokoCreateSerializer(serializers.ModelSerializer):
"""Добавление локомотивов"""
class Meta:
model = Loko
fields = "__all__"
И собственно View
def post(self, request):
loko = LokoCreateSerializer(data=request.data)
if loko.is_valid():
loko.save()
return Response(loko.data, status=201)
return Response(loko.errors, status=400)
Проблема моя заключается в том что на АПИ я должен передать JSON:
{
"name":"7854123",
"element_type":"element",
"region":[1]
}
Это хорошо работает, но проблема в том, что region на фронте это селект где пользователь выбирает регион, и соответственно JSON формируется следующим образом:
{
"name":"7854123",
"element_type":"element",
"region":["Московская область"]
}
и естественно ошибка, так как не ИД передаем, как сделать так что бы принималась строка, а в поле
region=models.ManyToManyField(Region, verbose_name="Регион")
уже заносился ИД этого региона?
Да я нуб :) да я только учусь :)