异常值:int()参数必须是字符串,类似字节的对象或数字,而不是'NoneType'

时间:2020-08-26 19:36:09

标签: django

从输入框中提取特定数量会产生错误

book_details.html

<form class="single-product-cart" action="" method="POST">
 <input type="number" name="qty" value="1">
 <a href="{{book.get_add_to_cart_url}}" type="submit" name="add-to-cart" class="single_add_to_cart_button btn alt" style="margin-bottom:10px;">Add to cart</a>
</form>

views.py

class BookDetailView(generic.DetailView):
    template_name = 'book_detail.html'
    model = book

    def get_context_data(self, **kwargs):
        context = super(BookDetailView, self).get_context_data(**kwargs)
        context['book_list'] = book.objects.all().order_by('-id')[:6]
        context['related'] = book.objects.all()
        return context

def add_to_cart(request, slug):
    Book = get_object_or_404(book, slug=slug)
    order_book, created = orderbook.objects.get_or_create(
        Book=Book, user=request.user, ordered=False)
    order_qs = Order.objects.filter(user=request.user, ordered=False)
    if order_qs.exists():
        order = order_qs[0]
        if order.books.filter(Book__slug=Book.slug).exists():
            quant = request.POST.get('qty')
            order_book.quantity += int(quant)
            order_book.save()
        else:
            order.books.add(order_book)
    else:
        ordered_date = timezone.now()
        order = Order.objects.create(
            user=request.user, ordered_date=ordered_date)
        order.books.add(order_book)
    return redirect(request.META['HTTP_REFERER'])

我在'order_book.quantity + = int(quant)'中遇到问题,它显示“异常值:int()参数必须是字符串,类似字节的对象或数字,而不是'NoneType'”。 并且未在'quant = request.POST.get('qty')'print(quant)处获取数量值时显示'none'。

0 个答案:

没有答案