J'ai une page de modèle qui attend deux formulaires. Si je n'utilise qu'un seul formulaire, les choses vont bien comme dans cet exemple typique:
if request.method == 'POST':
form = AuthorForm(request.POST,)
if form.is_valid():
form.save()
# do something.
else:
form = AuthorForm()
Si je veux travailler avec plusieurs formulaires, comment puis-je faire savoir à la vue que je ne soumets qu'un seul des formulaires et pas l'autre (c'est-à-dire qu'il s'agit toujours d'une demande.POST mais je veux uniquement traiter le formulaire pour lequel la soumission arrivé)?
Il s'agit de la solution basée sur la réponse où la phrase attendue et la phrase interdite sont les noms des boutons d' envoi pour les différents formulaires et la forme attendue et la phrase interdite sont les formulaires.
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')