Представление 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'))
``