Django Rest Framework - Сериализация полей промежуточной модели (для POST или GET) - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь обрабатывать запросы POST и GET моей модели SalesProject, в которой есть поле M2M для модели CustomerInformation, с промежуточной моделью ProjectCustomer. Мне интересно, есть ли у меня способы создать новый экземпляр SalesProject и добавить соответствующие экземпляры CustomerInformation в этот созданный экземпляр SalesProject, точно так же, как это было бы сделано до того, как я переключил его на промежуточную модель.

По сути, это данные, которые я хотел бы передать для запроса POST

{sales_project_name: "Test Project", customer_information: [1, 2]}

где [1,2] - это идентификатор экземпляра CustomerInformation, который я хочу связать M2M к этому конкретному проекту продаж, который я создаю

Вот мой models.py

class CustomerInformation(models.Model):
    customer_id = models.AutoField(primary_key=True)
    customer_name = models.CharField(max_length=100)
    history = HistoricalRecords()

class SalesProject(models.Model):
    sales_project_id = models.AutoField(primary_key=True)
    sales_project_name = models.CharField(max_length=100)
    customer_information = models.ManyToManyField('CustomerInformation', through='Project_Customer')
    history = HistoricalRecords()

class Project_Customer(models.Model):
    project = models.ForeignKey('SalesProject', on_delete=models.SET_NULL, null=True)
    customer = models.ForeignKey('CustomerInformation', on_delete=models.SET_NULL, null=True)
    history = HistoricalRecords()

Я новичок в использовании промежуточных моделей, поэтому помогите мне, если я в чем-то ошибаюсь! Из того, что я вижу, похоже, что когда я пытаюсь создать SalesProject с помощью ModelViewsets, поле customer_information больше не является частью запроса, и кажется, что набор просмотра игнорирует это поле, это нормально? Как мне решить эту проблему, чтобы я мог выполнять POST и GET так же, как обычно, при использовании ModelViewsets с обычным полем M2M

Любая помощь приветствуется, спасибо!

...