我查看了django文档,做了大量的谷歌搜索,并尝试了不少解决方案但无济于事.
我使用Django的FormWizard创建了一个3部分表单.一旦验证了最后一个表格(付款表格),我就会向付款网关发送付款请求.
我正在使用FormWizard的'process_step'方法进行付款处理.
我很难弄清楚如何在付款失败时让FormWizard再次显示付款页面.就像现在一样,FormWizard的'done'方法被调用(在我在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/')
Run Code Online (Sandbox Code Playgroud)