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
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
- Максим Васильев
- 2. Oktober 2024 04:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
- Лев Семенов
- 30. September 2024 11:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
как бы одно решение я нашел, это Вложенные отношения, НО данный метод предусматривает создания сериализаторов для каждой модели, мен кажется это очень долго и длинно