예제 #1
0
def update(request):

    if request.method == "POST":
        body_unicode = request.body.decode('utf-8')
        body = json.loads(body_unicode) if body_unicode != "" else {}
        add = body.get('add')  #Также без условия на нахождение
        delete = body.get('delete')
        update = body.get('update')
        author_id = body.get('author_id')
        author = Author.get(id=author_id)
        answer = {'deleted': [], 'added': [], 'updated': []}
        for delete_id in delete:
            book = Book.get(id=delete_id)
            if book is not None:
                book.delete()
                answer['deleted'].append(delete_id)
        for book_update in update:
            book = Book.get(id=book_update['id'])
            if book is not None:
                title = book_update.get('title')
                description = book_update.get('description')
                price = book_update.get('price')
                if title == "" or description == "" or price == "":
                    book_update['status'] = 'error'
                else:
                    book.title = title
                    book.description = description
                    book.price = price
                    book.save()
                    book_update['status'] = ''
                answer['updated'].append(book_update)
        for book_add in add:
            title = book_add.get('title')
            description = book_add.get('description')
            price = book_add.get('price')
            if title == "" or description == "" or price == "":
                book_add['status'] = 'error'
            else:
                book = Book.create(title, description, price, author)
                book_add['status'] = ''
                book_add['new'] = False
                book_add['id'] = book.id
            answer['added'].append(book_add)
        return HttpResponse(json.dumps(answer))
    else:
        return HttpResponseRedirect('/')
예제 #2
0
def get(request):

    if request.method == "POST":
        body_unicode = request.body.decode('utf-8')
        body = json.loads(body_unicode) if body_unicode != "" else {}
        data = body.get(
            'data'
        )  #Не стал делать условие на отсутствие параметров, ибо всё равно сам пишу данные отправки (хотя стоило бы)
        if data == 'authors':
            authors = Author.objects.all()
            return HttpResponse(
                json.dumps([author.serialize() for author in authors]))
        elif data == 'books':
            author_id = body.get('author_id')
            author = Author.get(id=author_id)
            books = Book.get(all=True, author=author)
            return HttpResponse(
                json.dumps([book.serialize() for book in books]))
    else:
        return HttpResponseRedirect('/')