Нельзя проверять поля, переданные в качестве аргументов методу serializer.save () , они будут доступны только в методе create сериализатора, и я предлагаю не запускать проверки там. В таких ситуациях я переопределяю метод create набора данных и добавляю дополнительные параметры к данным, передаваемым в сериализатор.
class MyViewSet(MultiSerializerViewSet):
def create(self, request, *args, **kwargs):
request_data = request.data
request_data['creator'] = self.user.id
serializer = self.get_serializer(data=request_data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
При такой настройке вам также необходимо добавить creator в качестве поля сериализатора. При этом поле будет доступно в потоке проверки.