DjangoRestFramework сериализаторы
django, drf, serializers, apiview
Приветствую уважаемые коллеги.
Нужен совет как поступить в следующей ситуации:
есть некая кастомная модель пользователя наследуемая от AbstractUser.
есть приложение в которой есть следующий комплект моделей:
class Client(models.Model): client_name=... client_email=... client_city=... ..... class ProjectLanguage(models.Model): projectlanguage_name=... class Project(models.Model): name=models.CharField... client = models.ForeignKey(Client,...) tester_lead = models.ForeignKey(User,...related_name="project_tester_lead"...) tester_team = models.models.ManyToManyField(User, related_name="project_tester_team"...) project_language = models.ForeignKey(ProjectLanguage, related_name="project_language",....)
я сериализую модель пользователя:
class UserSerializerd(serializers.ModelSerializer): project_tester_lead = serializers.StringRelatedField(many=True) class Meta: model= User fields = ['id', 'username', 'last_name', 'first_name', 'project_tester_lead']
вот представление для данного сериализатора:
class UserListd(APIView): permission_classes = [permissions.AllowAny] def get(self, request): usr = User.objects.all() ser = UserSerializerd(usr, many=True) return Response(ser.data)
результат:
[ { "id": 1, "username": "admin", "last_name": "", "first_name": "", "project_tester_lead": [] }, { "id": 2, "username": "tester1", "last_name": "", "first_name": "", "project_tester_lead": [ "Project1", "Project3" ] }, { "id": 3, "username": "tester2", "last_name": "", "first_name": "", "project_tester_lead": [ "Project2" ] } ]
как мы видим тянется список из модели Project
теперь задача стоит добавить чтобы сериализатор тянул остальные данные из модели Project связанные с данным рroject-ом
подскажите как или в каком направлении копать?
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
- Ora Iro
- Жел. 24, 2024, 6:38 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:40ұпай,
- Бағалау ұпайлары-8
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
как бы одно решение я нашел, это Вложенные отношения, НО данный метод предусматривает создания сериализаторов для каждой модели, мен кажется это очень долго и длинно