/ / django चेंज मॉडल फॉर्म उदाहरण - अजगर, django

django चेंज मॉडल फॉर्म उदाहरण - अजगर, django

वहाँ कोई आसान तरीका है Django मॉडल के रूप को बदलने के बाद इसे शुरू किया गया है?

उदाहरण के लिए निम्नलिखित 1 के एक आईडी के साथ वस्तु के लिए db में वर्तमान में सामग्री के साथ एक टेम्पलेट में प्रपत्र को पूर्व-आबाद करेगा:

form = exampleModelForm(instance = Model.objects.get(pk=1)

यह प्रासंगिक वस्तु को भी बचाएगा जब एक नया बनाने के बजाय () को सहेजा जाता है।

जहां यह एक नई वस्तु बनाएगा और टेम्पलेट में फ़ॉर्म को पूर्व-आबाद नहीं करेगा:

form = exampleModelForm()

के रूप में मैं एक अलग से एक खाली रूप लौट रहा हूँविधि, फिर मैं इसे बनाने के बाद एक उदाहरण देना चाहूंगा और ऑब्जेक्ट को संशोधित कर दूंगा ताकि इसे सहेजा जा सके और टेम्पलेट db में मौजूद मानों के साथ पहले से आबाद हो जाए। मुझे ऐसा कुछ चाहिए लेकिन क्या मैं "काम करने की कोशिश नहीं करता" लगता है:

form = methodThatGetsForm(somearg)
form.instance = ExampleModel.objects.get(pk = getId(somearg))

वहाँ एक साधारण कार्य है कि मैं यहाँ याद आ रही है?

उत्तर:

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

मैंने इसका परीक्षण नहीं किया है, लेकिन मुझे आश्चर्य है कि यदि आप लौटाए गए फॉर्म डेटा और नए ऑब्जेक्ट के रूप में उदाहरण के साथ नए फॉर्म को पुन: व्यवस्थित कर सकते हैं।

form = methodThatGetsForm(somearg)
new_form = ExampleModelForm(form.cleaned_data, instance=ExampleModel.objects.get(pk=getID(somearg)))
new_form.save()

यदि नहीं, तो फ़ील्ड से कुंजी / मान जोड़े के शब्दकोश के रूप में डेटा प्राप्त करने का एक तरीका होना चाहिए form लौटा, यह का उपयोग कर ._meta डेटा। मुझे लगता है कि यदि आप उस डिक्शनरी को फॉर्म के लिए भेजते हैं तो यह उन मानों को इंस्टेंस ऑब्जेक्ट पर भेज देगा, जैसे इसे भेजना request.POST.