पर Django Formwizards 'done' विधि को कैसे/कहां रोकना है, मैंने django दस्तावेज को देखा है, बहुत सारे गुगलिंग किए हैं और कुछ अलग समाधानों का प्रयास किया है लेकिन इसका कोई फायदा नहीं हुआ है।भुगतान विफलता
मैंने Django के फॉर्म विज़ार्ड का उपयोग करके 3 भाग फ़ॉर्म बनाया है। एक बार अंतिम फॉर्म (भुगतान फ़ॉर्म) मान्य हो जाने पर, मैं भुगतान गेटवे पर भुगतान अनुरोध भेजता हूं।
मैं फॉर्मवार्डर की '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/')
मुझे लगता है कि फॉर्म फॉर्मवार्ड के साथ फ़ॉर्म को संसाधित करने के तरीके में कुछ मौलिक याद आ रही है। मैं क्या करना चाहता हूं प्रक्रिया_step के चरण == 2 में टिप्पणियों की तरह कुछ है (जैसा कि परीक्षण कोड में दिखाया गया है)। बस यह सुनिश्चित न करें कि वहां कौन सा कोड डालना है। कोई फर्क नहीं पड़ता कि मैंने वहां क्या रखा है, पिछली विधि को अंतिम रूप के रूप में निष्पादित किया गया है। यदि कोई भी कोड की एक पंक्ति प्रदान कर सकता है जो भुगतान फॉर्म को फिर से दिखाने के लिए वहां काम करेगा (भुगतान की सफलता तक x बार बार), या कुछ ऐसा सुझाव दें जो मैं render_template या अन्य जगहों में कर सकता हूं, तो यह एक बड़ी मदद होगी। – shawn