Я использую mixins.CreateModelMixin.create
для создания объекта, но также мне нужно добавить request.user
к m2m
полям в нем.Поэтому моя идея состоит в том, чтобы поймать объект из self.create()
, а затем из-за make obj.users.add(user)
.Но CreateModelMixin возвращает только responce
.Как я могу получить объект от .create
?Это лучший способ добавить пользователя?Могу ли я использовать super
(не очень хорошо)?Спасибо!
ДОБАВЛЕНО:
Я могу использовать perform_create()
и ловить объект здесь, но это делает код больше и повторяет .create()
в основном, поэтому я недумаю, что это правильный путь.
ДОБАВЛЕНО:
Код I пользователь сейчас:
@action(detail=False, methods=['POST'], serializer_class=CompanyAdminSerializer)
def create_company(self, request):
user = self.request.user
if user.user_of_company.exists():
raise NotAcceptable(detail='Only one company allowed')
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
company = serializer.save()
company.users.add(user)
company.admin_users.add(user)
return Response(serializer.data)