ValueError в / checkout / Представление account2.views.CheckoutView не возвращало объект HttpResponse. Вместо этого он вернулся - PullRequest
0 голосов
/ 22 апреля 2020

Может кто-нибудь помочь мне исправить эту ошибку? Я пытаюсь создать сайт электронной коммерции, используя Django. Почему эта ошибка выбрасывается? Это в моих views.py. Но в чем проблема на самом деле и что означает эта ошибка?

Мои аккаунты2.views.py:

class CheckoutView(View):
    def get(self, *args, **kwargs):
        the_id = self.request.session['cart_id']
        cart = Cart.objects.get(id=the_id)
        form = CheckoutForm()
        context = {"form": form, "cart": cart}
        return render(self.request, "orders/checkout.html", context)

    def post(self, *args, **kwargs):
        form = CheckoutForm(self.request.POST or None)
        try:
            the_id = self.request.session['cart_id']
            cart = Cart.objects.get(id=the_id)
            order = Order.objects.get(cart=cart)
        except Order.DoesNotExist:
            order = Order(cart=cart)
            order.cart = cart
            order.user = self.request.user
            order.order_id = id_generator()
            order.save()
            if form.is_valid():
                street_address = form.cleaned_data.get('street_address')
                apartment_address = form.cleaned_data.get('apartment_address')
                country = form.cleaned_data.get('country')
                zip = form.cleaned_data.get('zip')
                # same_shipping_address = form.cleaned_data.get('same_billing_address')
                # save_info = form.cleaned_data.get('save_info')
                payment_option = form.cleaned_data.get('payment_option')
                billing_address = BillingAddress(
                        user = self.request.user,
                        street_address = street_address,
                        apartment_address = apartment_address,
                        country = country,
                        zip = zip
                    )
                billing_address.save()
                order.billing_address = billing_address
                order.save()
                return redirect('checkout')
            messages.warning(self.request, "Failed checkout")
            return redirect('checkout')

        except ObjectDoesNotExist:
            messages.warning(self.request, "You do not have an active order")
            return redirect('/')

1 Ответ

1 голос
/ 22 апреля 2020

Эта часть кода должна возвращать HttpResponse:

try:
    the_id = self.request.session['cart_id']
    cart = Cart.objects.get(id=the_id)
    order = Order.objects.get(cart=cart)

Что-то вроде:

return render(request, 'path_to_template', {'order': order})
...