Представление products.views.get_product не возвращало объект HttpResponse. Вместо этого оно вернуло None

Вот мой код, я получаю ту же ошибку снова и снова.

def add_to_cart(request,uid):
    variant=request.GET.get('variant')
    product=Product.objects.get(uid=uid)
    user=request.user
    cart=Cart.objects.get_or_create(user=user, is_paid=False)
    cart_item=CartItems.objects.create(cart=cart,product=product)

    if variant:
        variant=request.GET.get('variant')
        size_variant=SizeVariant.objects.get(size_name=variant)
        cart_item.size_variant=size_variant
        cart_item.save()
        return HttpResponseRedirect(request.META.get('HTTP_REFFER'))

ValueError at /product/tommy-hilfiger-blue-jeans Представление products.views.get_product не вернуло объект HttpResponse. Вместо этого оно вернуло None. Метод запроса: GET

Версия Django: 4.0.4 Тип исключения: ValueError Значение исключения:
Представление products.views.get_product не вернуло объект HttpResponse. Вместо него возвращается None. Расположение исключения: C:\Users\MyPc\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py, строка 332, in check_response Python Executable: C:\Users\MyPc\AppData\Local\Programs\Python\Python39\python.exe Версия Python: 3.9.7

В вашем коде, если условие if variant: не выполняется, то нет HttpResponse, значит, возвращается None.

Попробуйте напечатать переменную variant и посмотрите, что не так.

Просто добавьте return HttpResponse снаружи if

def add_to_cart(request,uid):
    variant=request.GET.get('variant')
    product=Product.objects.get(uid=uid)
    user=request.user
    cart=Cart.objects.get_or_create(user=user, is_paid=False)
    cart_item=CartItems.objects.create(cart=cart,product=product)

    if variant:
        variant=request.GET.get('variant')
        size_variant=SizeVariant.objects.get(size_name=variant)
        cart_item.size_variant=size_variant
        cart_item.save()
        return HttpResponse(request.META.get('HTTP_REFFER'))

    return HttpResponse(0)

Здесь вы вернули HTTPReseponse внутри блока if. Это означает, что если вариант существует, то ваш блок if будет выполнен, в противном случае он не будет выполнен. Таким образом, когда вариант не существует, ваш код не возвращает никакого ответа. Вот почему вы получаете эту ошибку.

Решение:

if variant:
    variant=request.GET.get('variant')
    size_variant=SizeVariant.objects.get(size_name=variant)
    cart_item.size_variant=size_variant
    cart_item.save()
    return HttpResponseRedirect(request.META.get('HTTP_REFFER'))
else:
    return HttpResponseRedirect(request.META.get('HTTP_REFFER'))
``

 
Вернуться на верх