【发布时间】:2021-10-17 00:27:03
【问题描述】:
我正在尝试通过 POST 发送此表单数据。当我点击提交时,它会将我重定向到指定的<form action="{% url 'create-checkout-session' %}",但我从未收到电子邮件。如果我删除<action="",它会通过电子邮件发送数据,但我当然不会被重定向到我想要的网址。问题是这个 url 不是我可以硬编码的,因为它是由 Stripe 支付生成的,并且对于每个请求都是一个新请求,所以 FormView 的 success_url 不是我可以使用的。
我想要实现的是重定向到表单操作,但同时通过电子邮件获取表单数据。
这是表格。
<form action="{% url 'create-checkout-session' %}" method="POST">
{{form.name}}
{{form.surname}}
<button type="submit" class="btn btn-success">
Card Payment
</button>
我在视图中是这样处理的。
class checkoutView(UserPassesTestMixin, FormView):
template_name = 'store/checkout.html'
form_class = userInfoForm
success_url = reverse_lazy('create-checkout-session')
def form_valid(self, form):
subject = 'New message from: ' + form.cleaned_data['email']
message = form.cleaned_data['name']
recipient_list = settings.EMAIL_HOST_USER
connection = settings.EMAIL_HOST_USER,
send_mail(subject, message, recipient_list, connection)
return super().form_valid(form)
【问题讨论】:
标签: django forms django-forms formview