पैरामीटर पास करने में सक्षम होने के लिए आपको this post में वर्णित तकनीक का उपयोग करने की आवश्यकता है। उत्कृष्ट लेखक के लिए उस लेखक को क्रेडिट करें। आप कई हिस्सों में इस लक्ष्य को हासिल:
एक जागरूक यह जुड़ा हुआ सवाल से
उदाहरण अतिरिक्त पैरामीटर लेने के लिए जा रहा है के रूप में:
def __init__(self, *args, **kwargs):
someeobject = kwargs.pop('someobject')
super(ServiceForm, self).__init__(*args, **kwargs)
self.fields["somefield"].queryset = ServiceOption.objects.filter(
somem2mrel=someobject)
या आप
के साथ बाद कोड की जगह ले सकता
self.fields["somefield"].initial = someobject
सीधे, और यह काम करता है।
एक curried रूप initialisation सेटअप:
formset = formset_factory(Someform, extra=3)
formset.form = staticmethod(curry(someform, somem2mrel=someobject))
कि आप कस्टम प्रपत्र पैरामीटर प्रदान करने के लिए हो जाता है। अब तुम क्या जरूरत है:
एक जनरेटर अपने विभिन्न प्रारंभिक मापदंडों
मैं इस का उपयोग कर रहा प्राप्त करने के लिए: अब
def ItemGenerator(Item):
i = 0
while i < len(Item):
yield Item[i]
i += 1
, मैं यह कर सकता:
iterdefs = ItemGenerator(ListofItems) # pass the different parameters
# as an object here
formset.form = staticmethod(curry(someform, somem2mrel=iterdefs.next()))
अरे प्रतिष्ठा। form
विधि के प्रत्येक मूल्यांकन का पुनरावृत्त पैरामीटर में गुजरने वाले हिस्सों में मूल्यांकन किया जा रहा है। हम जो चाहते हैं उस पर हम पुन: प्रयास कर सकते हैं, इसलिए मैं उस तथ्य का उपयोग वस्तुओं के एक सेट पर फिर से करने के लिए कर रहा हूं और प्रत्येक के मान को एक अलग प्रारंभिक पैरामीटर के रूप में पास कर सकता हूं।
मुझे ओपी के लिए एक ही समस्या है। मैं कई रूपों के साथ एक फॉर्मेट बनाने की कोशिश कर रहा हूं, प्रत्येक फॉर्म के साथ यह एक चुनिंदा तत्व (यानी "विकल्प") के विकल्पों का अपना अनूठा सेट है। मैं बिल्कुल नहीं देख सकता कि यह समाधान कैसे मदद करेगा। क्या मैं कुछ भूल रहा हूँ? – ACPrice