У мене на шаблонній сторінці очікуються дві форми. Якщо я просто використовую одну форму, то все добре, як у цьому типовому прикладі:
if request.method == 'POST':
form = AuthorForm(request.POST,)
if form.is_valid():
form.save()
# do something.
else:
form = AuthorForm()
Якщо я хочу працювати з декількома формами, однак, як я можу повідомити, що я надсилаю лише одну з форм, а не іншу (тобто це все ще запит.POST, але я хочу лише обробити форму, для якої надсилати сталося)?
Це рішення, засноване на відповіді, де очікувана фраза та заборонена фраза є назви кнопок подання для різних форм, а очікувана фраза та форма забороненої фрази - форми.
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')