【发布时间】:2020-06-07 16:32:34
【问题描述】:
我有一个基于类的视图,我正在检查一些条件并重定向到另一个页面,我在终端中看到对该页面的 GET 请求,它返回 200,但它没有重定向到该页面:
class CheckoutFinalView(CartOrderMixin, View):
def post(self, request, *args, **kwargs):
cart_obj, new_obj = Cart.objects.new_or_get(request)
order_obj = None
if cart_obj.items.count() == 0:
return redirect("carts:cart")
billing_profile, billing_profile_created = BillingProfile.objects.new_or_get(request)
has_card = False
if billing_profile is not None:
order_obj, order_obj_created = Order.objects.new_or_get(billing_profile, cart_obj)
order_obj.save()
has_card = billing_profile.has_card
is_prepared = order_obj.check_done()
user = User.objects.get(id=request.user.id)
if is_prepared:
print(is_prepared)
did_charge, crg_msg = billing_profile.charge(order_obj)
print(did_charge)
if did_charge:
order_obj.mark_paid() # sort a signal for us
request.session['cart_items'] = 0
del request.session['cart_id']
del request.session["order_id"]
if not billing_profile.user:
print("not billing profile user: ", billing_profile.user)
billing_profile.set_cards_inactive()
return redirect("checkout_final")
else:
print(crg_msg)
return redirect("checkout_final")
def get(self, request, *args, **kwargs):
return redirect("carts:success")
我也试过 return HttpResponseRedirect(reverse('carts:success')) 。但它也不起作用。
【问题讨论】:
-
你这里只重定向一个 POST 请求。
标签: python django python-3.x django-views