Как добавить средние 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)
Вернуться на верх