/ / Django FormWizard गतिशील रूप से form_list - django, django-formwizard को बदलें

Django FormWizard गतिशील रूप से form_list - django, django-formwizard को बदलें

मुझे फॉर्म विज़ार्ड के साथ कुछ समस्याएं हैं, जो किशायद कोई कुछ प्रकाश डाल सकता है। विधि process_step में docstring के अनुसार: मैं "गतिशील रूप से self.form_list बदल सकता हूं"। इसलिए, मेरी परियोजना की जरूरतों के आधार पर, मैं फॉर्म_लिस्ट में फॉर्म जोड़ रहा हूं। जिन फॉर्मों में मैं शामिल हूं वे प्रश्न और उत्तर हैं: http://dpaste.com/hold/152201/

मुद्दा यह है कि जब 2 लोगों ने माराफॉर्मविज़ार्ड एक ही समय में, वे एक-दूसरे के प्रश्न और उत्तर देखना शुरू करते हैं। मुझे लगता है कि मैं समझ नहीं पा रहा हूं कि process_step कैसे सुझाव देता है कि मैं गतिशील रूप से form_list को बदल सकता हूं, ऐसा करने पर मैं किसी अन्य उपयोगकर्ता की फ़ॉर्म सूची संशोधित कर रहा हूं। Urls.py में परिभाषित फॉर्मवार्ड यूआरएल को मारने वाले विज़िटर के बीच form_list एक साझा ऑब्जेक्ट है? मैंने इस समस्या को apache2 / prefork / worker / mod_wsgi के तहत देखा है, और रनरवर के साथ ऐप चलाते समय।

उत्तर:

जवाब के लिए 2 № 1

आप फॉर्म विज़ार्ड का उपयोग कैसे करते हैं? यदि आप इसे "urls.py में डाल रहे हैं जैसे दस्तावेज़ कहते हैं तो इसे कैश किया जा सकता है, मुझे यह समस्या दो बार थी। बस इसे एक दृश्य में रखें:

def my_view(request):
return FormWizard(request)

अद्यतन: असली से उदाहरण

def registration_wizard(request, template_name=None):
rw = RegistrationWizard([RegistrationForm, 0])
#hack formwizard to replace default template
if template_name:
rw.get_template = lambda x: template_name

return rw(request)

यहां पंजीकरण विज़ार्ड एक फॉर्म विज़ार्ड उपclass हैगतिशील form_list के साथ, [पंजीकरणफॉर्म, 0] की आवश्यकता है क्योंकि यदि सृजन समय पर केवल एक ही फ़ॉर्म है, तो विज़ार्ड फॉर्म_लिस्ट फ़ंक्शन पर नहीं पहुंच पाएगा। खाका चीज सुंदर आत्म-व्याख्यात्मक है