Django Rest Framework: использование метода create в ModelViewSet для создания другого экземпляра модели
Я использую Django Rest Framework и drf-nested-routers и у меня есть три модели: Projects, Users и Contributors. Contributor - это способ связать проекты и контрибьюторов и содержит два поля, user_id и project_id.
У меня есть вложенный User ModelViewSet, который возвращает всех пользователей в данном проекте. Для моего задания, используя метод post на projects//users/ нужно создать нового Contributor (не User).
Моя теория заключалась в том, что я хочу получить только id выбранного пользователя в качестве запроса, затем post получит соответствующего пользователя и создаст объект Contributor.
Однако, create() и perform_create() сразу же выдают ошибку, когда я пытаюсь их переопределить: create() падает, потому что получает аргумент project_pk, который я так и не добавил, а perform_create() хочет получить полную форму User для сериализации (и попытки создания).
Я пытался настроить сериализатор так, чтобы запрос 'post' на моем ModelViewSet использовал пользовательский сериализатор FetchUser, но тогда я получаю TypeError: 'NoneType' object is not callable.
Я искал много и мало, но не нашел никого с такой же проблемой. Возможно ли вообще переопределить эти методы таким образом?