Как добавить средние ID в третью таблицу с помощью ManyToManyField в Django при использовании Serialaizer?
У меня есть такие таблицы:
class Education(models.Model):
title = models.CharField(default=None, max_length=100)
content = models.TextField(default=None)
price = models.ManyToManyField(Price)
class Price(models.Model):
cost = models.CharField(default=None, max_length=20)
При получении запроса от клиента и попытке сохранить его в три таблицы, у меня нет проблем с двумя таблицами Education
и Price
, но так как я использую сериализатор я не знаю как обновить третью таблицу (середину).
def post(self, request):
cost = request.POST.get('cost')
price = Price.objects.create(cost=cost)
education_serializer = EducationSerializer(data=request.data)
if education_serializer.is_valid():
education_serializer.save()
Хорошо, здесь я обновил две таблицы, в следующей я не знаю, как обновить третью таблицу. Если бы я не использовал сериализатор, я мог бы написать это так:
education.price.add(price)
Вызов education_serializer.save
возвращает экземпляр Education
, поэтому вы можете написать:
def post(self, request):
cost = request.POST.get('cost')
price = Price.objects.create(cost=cost)
education_serializer = EducationSerializer(data=request.data)
if education_serializer.is_valid():
education = education_serializer.save()
education.price.add(price)