我查看了 django 文档,进行了很多谷歌搜索,并尝试了很多不同的解决方案,但无济于事。
我使用 Django 的 FormWizard 创建了一个由 3 部分组成的表单。验证最后一个表单(支付表单)后,我会向支付网关发送支付请求。
我正在 FormWizard 的“process_step”方法中进行支付处理。
当付款失败时,我很难弄清楚如何让 FormWizard 再次显示付款页面。就像现在一样,FormWizard 的“完成”方法被调用(在我在 process_step 中完成处理之后),因为所有表单都已经过验证。
我想知道是否需要覆盖调用方法。不太确定如何做到这一点,但我目前正在尝试解决这个问题。
任何帮助将非常感激。问候, 肖恩
class TrainingWizard(FormWizard):
def process_step(self,request,form,step):
if step == 0:
self.extra_context = {'stepOne': "One"}
if step == 1:
self.extra_context = {'stepTwo': "Two"}
if step == 2:
if self.get_response != "Success":
#Payment Failed
#Add error message
#Show Payment Form Again to allow user to retry
return
def get_response(self):
#return "Success"
return "Declined"
def done(self, request, form_list):
return HttpResponseRedirect('/training-registration-complete/')