是否可以在 Django 中重定向到没有 AJAX 的条带结帐页面?

Posted

技术标签:

【中文标题】是否可以在 Django 中重定向到没有 AJAX 的条带结帐页面?【英文标题】:Is it possible to redirect to a stripe checkout page without AJAX in Django? 【发布时间】:2021-12-18 13:36:22 【问题描述】:

我有一个 FormView,在提交表单后我会在其中做一些事情,然后我想重定向到条带结帐。没有javascript可以吗?

class ApplicationForm(forms.ModelForm):
    class Meta:
        model = Application
        fields = "email", "name"


    def save(self, commit=True):
        application = super().save(commit=commit)
        checkout_session = stripe.checkout.Session.create(...) # I'm creating the session here and do some other stuff with the form input
        return application

class ApplicationView(CreateView):
    template_name = "application.html"
    form_class = ApplicationForm

    def get_success_url(self):
        # TODO: How do I redirect to Stripe checkout here?

【问题讨论】:

【参考方案1】:

您可以为此使用重定向:

from django.shortcuts import redirect

def get_success_url(self):
    # Redirect the user to the Stripe Checkout page (i suppose that is an external url from your app)
    stripe_checkout_url = 'https://stripe/checkout/url'
    return redirect(stripe_checkout_url)
    # If it's an app url like: stripe:checkout (name 'checkout' and namespace = 'stripe')
    # return redirect('stripe:checkout')

【讨论】:

以上是关于是否可以在 Django 中重定向到没有 AJAX 的条带结帐页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中重定向到外部 URL?

如何在 Django 中重定向到不同的 URL?

如何在带有上下文的 Django 中重定向?

django 在 urls.py 中重定向

使用 changelist_view 在 django admin 中重定向

https://example.com/admin 在 Django Nginx 和 gunicorn 中重定向到 https://admin