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
Do you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Now discuss on the forum
- МАApril 1, 2025, 4:21 p.m.0ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
как бы одно решение я нашел, это Вложенные отношения, НО данный метод предусматривает создания сериализаторов для каждой модели, мен кажется это очень долго и длинно