私はdjangoのドキュメントを調べ、多くのグーグルを実行し、かなりの数の異なるソリューションを試しましたが、役に立ちませんでした。
DjangoのFormWizardを使用して3つの部分からなるフォームを作成しました。最後のフォーム(支払いフォーム)が検証されたら、支払い要求を支払いゲートウェイに送信します。
FormWizardの'process_step'メソッドで支払い処理を行っています。
支払いが失敗したときにFormWizardに支払いページを再度表示させる方法を理解するのに苦労しています。現在のように、すべてのフォームが検証されているため、FormWizardの「done」メソッドが呼び出されます(process_stepで処理を行った後)。
callメソッドをオーバーライドする必要があるかどうか疑問に思っています。どうすればいいのかよくわかりませんが、私は現在それを理解しようとしています。
どんな助けでも大歓迎です。よろしく、ショーン
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/')