Beispiel #1
0
    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)
Beispiel #2
0
def load_book(request):
    if request.method == 'POST':
        load_book_form = BookEditForm(request.POST, request.FILES)
        if load_book_form.is_valid():
            cleaned_data = load_book_form.cleaned_data

            book = Book(**cleaned_data)
            # book.cover_id = cover.id
            book.loaded_by_id = get_current_user_id(request)
            book.save()
            return render(request, 'book/load_book_done.html', {
                'book': book,
            })
        else:
            messages.error(request, 'File is not Epub!')
    else:
        load_book_form = BookEditForm()
    return render(request, 'book/load_book.html', {
        'form': load_book_form,
    })