def create_or_update(self, request, *args, **kwargs): post_params = dict(copy(request.POST)) create = strtobool(post_params.pop('create', True)[0]) book = Book(**post_params) result = { 'success': False, 'error_message': '', } try: book.file = request.FILES['file'] except KeyError: result['error_message'] = ('Файл с книгой не обнаружен!') return Response(result) book.cover = request.FILES.get('cover', None) book.pk = kwargs.pop('pk') book.loaded_by_id = request.user.profile.id if create: try: book.save() FavouriteBooks.objects.create( profile_id=request.user.profile.id, book_id=book.id, ) except IntegrityError as ex: result['error_message'] = 'Книга с подобным id уже загружена!' return Response(result) else: book.loaded_date = datetime.now() book.save() result['success'] = True return Response(result)