Я пытаюсь включить данные из промежуточной модели моего поля M2M в свои вызовы api, чтобы я получал данные из поля M2M в моем запросе GET, а также мог выполнять POST и PUT для этого промежуточного model, когда я выполняю запросы POST и PUT для моей базовой модели.
Вот мой 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, как показано ниже
class SalesProjectViewSet(viewsets.ModelViewSet):
serializer_class = SalesProjectSerializer
queryset = SalesProject.objects.all()
class SalesProjectSerializer(serializers.ModelSerializer):
class Meta:
model = SalesProject
fields = '__all__'
Как я могу получить подробную информацию о CustomerInformation, привязанном к экземпляру SalesProject, через поле M2M? Когда я использую это для получения данных, в данных SalesProject отображаются только другие поля, но отсутствует поле клиента. Кроме того, когда я отправляю данные POST, как я могу отправить как данные SalesProject, так и экземпляры клиентов, которые я хочу связать M2M с этим экземпляром SalesProject, в 1 запросе? В принципе, есть ли у меня какой-либо способ получить и опубликовать данные, как обычно, до вызова метода «сквозной» для поля M2M?
Всем спасибо, вся помощь приветствуется!