Решение представления не вернуло объект HttpResponse. Вместо этого он вернул None
Я получаю ошибку ниже
Метод запроса: POST
URL запроса: http://127.0.0.1:8000/orders/place_order/.
Версия Django: 3.1
Тип исключения: ValueError
Значение исключения:
Представление orders.views.place_order не вернуло объект HttpResponse. Вместо этого оно вернуло None.
if request.method == 'POST':
form = OrderForm(request.POST)
if form.is_valid():
print('we are here checking if the form is valid')
data = Order()
data.user = current_user
data.first_name = form.cleaned_data['first_name']
data.last_name = form.cleaned_data['last_name']
data.phone = form.cleaned_data['phone']
data.email = form.cleaned_data['email']
data.address_line_1 = form.cleaned_data['address_line_1']
data.address_line_2 = form.cleaned_data['address_line_2']
data.country = form.cleaned_data['country']
data.state = form.cleaned_data['state']
data.city = form.cleaned_data['city']
data.order_note = form.cleaned_data['order_note']
data.order_total = grand_total
data.tax =tax
data.ip = request.META.get('REMOTE_ADDR')
data.save()
return redirect('checkout')
else:
return redirect('checkout')
Это фрагмент моего файла views.py
Ваше представление должно вернуть ответ, также если форма не действительна, вы можете поднять исключение:
if request.method == 'POST':
form = OrderForm(request.POST)
if form.is_valid():
print('we are here checking if the form is valid')
data = Order()
data.user = current_user
data.first_name = form.cleaned_data['first_name']
data.last_name = form.cleaned_data['last_name']
data.phone = form.cleaned_data['phone']
data.email = form.cleaned_data['email']
data.address_line_1 = form.cleaned_data['address_line_1']
data.address_line_2 = form.cleaned_data['address_line_2']
data.country = form.cleaned_data['country']
data.state = form.cleaned_data['state']
data.city = form.cleaned_data['city']
data.order_note = form.cleaned_data['order_note']
data.order_total = grand_total
data.tax =tax
data.ip = request.META.get('REMOTE_ADDR')
data.save()
return redirect('checkout')
else:
raise BadRequest() # Or do whatever makes sense to you
else:
return redirect('checkout')
Мне удалось решить проблему. По-видимому, если в коде HTML-формы есть ошибка/опечатка, она выдает ошибку "не вернул объект HttpResponse". С представлением все было в порядке.