Как сериализовать несколько объектов в Django

У меня есть 2 модели для позиций администратора и участника, и я хотел бы получить обе модели в одном вызове API для получения данных на моем фронт-энде. Я пытался сделать много вещей, так что может ли кто-нибудь помочь мне :(

).
class ClinetAdminPosition(models.Model):
    name = models.CharField(max_length=128, null=True)
    company = models.ForeignKey(
        to="Company", on_delete=models.CASCADE, related_name="admin_positions", null=True
    )
    modified_at = models.DateTimeField(verbose_name="Updated", auto_now=True, editable=True)
    created_at = models.DateTimeField(verbose_name="Created", auto_now_add=True, editable=False)

    def __str__(self):
        return f"{self.name}"

class ClinetMangerPosition(models.Model):
    name = models.CharField(max_length=128, null=True)
    company = models.ForeignKey(
        to="Company", on_delete=models.CASCADE, related_name="manger_positions", null=True
    )
    modified_at = models.DateTimeField(verbose_name="Updated", auto_now=True, editable=True)
    created_at = models.DateTimeField(verbose_name="Created", auto_now_add=True, editable=False)

    def __str__(self):
        return f"{self.name}"

Я хочу получить данные обеих моделей из 1 запроса API

быть таким:

[
  {
    "admin_positions": [
      {
        "name": "test",
        "company": 1
      },
      {
        "name": "test2",
        "company": 1
      },
      {
        "name": "test3",
        "company": 1
      }
    ],
    "manger_position": [
      {
        "name": "test",
        "company": 1
      },
      {
        "name": "test2",
        "company": 1
      },
      {
        "name": "test3",
        "company": 1
      }
    ]
  }
]

Дайте мне знать, если у вас есть сомнения

class ClinetMangerPositionSerializer(ModelSerializer)
      
      clas Meta:
         model = ClinetMangerPosition

         fields = ['name','company']

class ClinetAdminPositionSerializer(ModelSerializer):
      
      class Meta:
          model = ClinetAdminPosition
          fields = ['name','company']
class CompanySerializer(MOdelSerializer): 
      manger_position = ClinetAdminPositionSerializer(many=True,source 
         ='clinetmangerposition')
      admin_position = ClinetAdminPositionSerializer(many=True,source 
                  ='clinetadminposition')
      class Meta:
         model= Company
         fields = ['manger_position','admin_position']
      

Вы можете сделать что-то вроде этого.

**Это ваши классы сериализаторов **

 class ClinetMangerPositionSerializer(ModelSerializer)
      
      clas Meta:
         model = ClinetMangerPosition

         fields = ['name','company']

class ClinetAdminPositionSerializer(ModelSerializer):
      
      class Meta:
          model = ClinetAdminPosition
          fields = ['name','company']

Это будет ваш класс представления для отображения данных.

from rest_framework.views import APIView
from . import serializers
from rest_framework.response import Response

class ViewName(APIView):
   
   def get(self, request):
      admin = ClinetAdminPosition.objects.all()
      manager = ClinetMangerPosition.objects.all()
      
      res :{
          "admin_positions": serializers.ClinetAdminPositionSerializer(admin, many=True).data
          "manager_positions":serializers.ClinetMangerPositionSerializer(manager, many-True).data
      }

      return Response(res)

что-то вроде этого,

Вернуться на верх