J'ai un modèle de page d'attendre deux formes. Si je viens d'utiliser un formulaire, les choses sont bien comme dans cet exemple classique:
if request.method == 'POST':
form = AuthorForm(request.POST,)
if form.is_valid():
form.save()
# do something.
else:
form = AuthorForm()
Si je veux travailler avec de multiples formes cependant, comment puis-je laisser la vue sais que je suis en soumettant une seule des formes et pas l'autre (c'est à dire qu'il est toujours en demande.POST, mais je ne veux processus de la forme pour laquelle le soumettre arrivé)?
C'est la solution basée sur la réponse expectedphrase et bannedphrase sont les noms des boutons de soumission pour les différentes formes et expectedphraseform et bannedphraseform sont les formes.
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')