मेरे पास दो रूपों की अपेक्षा करने वाला एक टेम्पलेट पृष्ठ है। यदि मैं सिर्फ एक फॉर्म का उपयोग करता हूं, तो चीजें इस विशिष्ट उदाहरण में ठीक हैं:
if request.method == 'POST':
form = AuthorForm(request.POST,)
if form.is_valid():
form.save()
# do something.
else:
form = AuthorForm()
यदि मैं कई रूपों के साथ काम करना चाहता हूं, लेकिन मैं यह कैसे बताऊं कि मैं केवल एक ही फॉर्म जमा कर रहा हूं और दूसरा नहीं (यानी यह अभी भी अनुरोध है। PST लेकिन मैं केवल उस फॉर्म को प्रोसेस करना चाहता हूं जिसके लिए सबमिट करना है हो गई)?
यह उत्तर के आधार पर समाधान है जहाँ अपेक्षित फॉर्मेज़ और बैनडफ़्रेज़ विभिन्न रूपों के लिए सबमिट बटन के नाम हैं और अपेक्षित फॉर्मरेज़फॉर्म और बैन्डफ़्रेज़फॉर्म फॉर्म हैं।
if request.method == 'POST':
if 'bannedphrase' in request.POST:
bannedphraseform = BannedPhraseForm(request.POST, prefix='banned')
if bannedphraseform.is_valid():
bannedphraseform.save()
expectedphraseform = ExpectedPhraseForm(prefix='expected')
elif 'expectedphrase' in request.POST:
expectedphraseform = ExpectedPhraseForm(request.POST, prefix='expected')
if expectedphraseform.is_valid():
expectedphraseform.save()
bannedphraseform = BannedPhraseForm(prefix='banned')
else:
bannedphraseform = BannedPhraseForm(prefix='banned')
expectedphraseform = ExpectedPhraseForm(prefix='expected')