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-ом
подскажите как или в каком направлении копать?
1
100
Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Последние комментарии
- AK1 апреля 2025 г. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VP9 марта 2025 г. 16:14Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМ22 ноября 2024 г. 21:51Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Сейчас обсуждают на форуме
- МА1 апреля 2025 г. 16:210ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- f15 февраля 2025 г. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
как бы одно решение я нашел, это Вложенные отношения, НО данный метод предусматривает создания сериализаторов для каждой модели, мен кажется это очень долго и длинно