2013-08-28 8 views
19

क्या दो अलग-अलग रूपों को सबमिट करना संभव है, django में एक सबमिट बटन के साथ? मेरे पास "उपकरण" और 4 बराबर रूप "कॉन्फ़िगर" नामक एक रूप है। अब मैं हमेशा एक कॉन्फ़िगरेशन और उपकरण जमा करना चाहता हूं। जैसे उपकरण + कॉन्फ़िगरेशन 1, और उपकरण + कॉन्फ़िगरेशन 2. और प्रत्येक कॉन्फ़िगरेशन का अपना सबमिट बटन होता है।django एक सबमिट बटन के साथ दो अलग-अलग फॉर्म जमा करें

मैं config रूप में एक बटन के साथ यह कोशिश की है:

<input onclick="submitForms()" class="btn btn-primary cfg" type="submit" value="Start" > 

और एक js समारोह 'onclick' फोन:

submitForms = function(){ 
    console.log('ok'); //only for testing 
    document.forms["firstForm"].submit(); 
    document.forms["secondForm"].submit(); 
} 

इस views.py में मेरी विधि है:

if request.method == 'POST': 
     form1 = dataproviderInstrumentForm(request.POST) 
     form2 = dynamicTimeseriesForm(request.POST) 
     print(request.POST) 
     if form1.is_valid() or form2.is_valid(): 
      # do some stuff 

else: 
    form1 = dataproviderInstrumentForm() # an unbound form 
    form2 = dynamicTimeseriesForm() # an unbound form 
+0

के संभावित डुप्लिकेट कर सकते हैं [मैं कैसे Django में एक भी सबमिट बटन के साथ कई फ़ॉर्म प्रस्तुत करूँ?] (Http://stackoverflow.com/questions/15124567/how-do- i-submit-multiple-form-with-a-single-submit-button-in-django) –

+0

हाँ मैंने यह पोस्ट देखा है, लेकिन ऐसा करना संभव नहीं है कि एक जेएस फ़ंक्शन के साथ फ़ॉर्मेट के बिना? – user2412771

उत्तर

38
इसके बजाय html में कई <form ..> टैग होने के

, केवल एकका उपयोग 0 टैग और इसके तहत सभी रूपों के फ़ील्ड जोड़ें।

टेम्पलेट

<form > 
    {{ form1.as_p }} 
    {{ form2.as_p }} 
    {{ form3.as_p }} 
</form> 

में

उदाहरण तो जब उपयोगकर्ता प्रपत्र सबमिट करता आप ध्यान में रखते हुए सभी रूपों डेटा मिल जाएगा, तो आप क्या तुम ध्यान में रखते हुए कर रहे हैं कर सकते हैं।

if request.method == 'POST': 
     form1 = Form1(request.POST) 
     form2 = Form2(request.POST) 
     print(request.POST) 
     if form1.is_valid() or form2.is_valid(): 

के रूप में अपनी बेहतर ऐसे मामलों में form prefix उपयोग करने के लिए।

तो तुम

if request.method == 'POST': 
     form1 = Form1(request.POST,prefix="form1") 
     form2 = Form2(request.POST,prefix="form2") 
     print(request.POST) 
     if form1.is_valid() or form2.is_valid(): 
else: 
     form1 = Form1(prefix="form1") 
     form2 = Form2(prefix="form2") 
+0

यह ठीक दिखता है अगर मैं एक ही समय में सभी फॉर्म जमा करता हूं, लेकिन मैं एक ही समय में एक कॉन्फ़िगरेशन फॉर्म और उपकरण प्रपत्र सबमिट करना चाहता हूं। इसलिए यदि मैं अपना स्वयं का सबमिट बटन के साथ दूसरा कॉन्फ़िगर फॉर्म सबमिट करता हूं तो उपकरण फ़ॉर्म भी सबमिट करना चाहिए। और अन्य 3 कॉन्फ़िगरेशन के लिए सबमिट बटन वही करना चाहिए। हमेशा कॉन्फ़िगर फॉर्म सबमिट करें जो सबमिट बटन और उपकरण प्रपत्र सबमिट करें। – user2412771

संबंधित मुद्दे