Tôi có một trang mẫu mong đợi hai hình thức. Nếu tôi chỉ sử dụng một hình thức, mọi thứ sẽ ổn như trong ví dụ điển hình này:
if request.method == 'POST':
form = AuthorForm(request.POST,)
if form.is_valid():
form.save()
# do something.
else:
form = AuthorForm()
Tuy nhiên, nếu tôi muốn làm việc với nhiều biểu mẫu, làm cách nào để cho chế độ xem biết rằng tôi chỉ gửi một trong các biểu mẫu chứ không phải biểu mẫu khác (nghĩa là vẫn yêu cầu. Tôi chỉ muốn xử lý biểu mẫu mà việc gửi đã xảy ra)?
Đây là giải pháp dựa trên câu trả lời trong đó cụm từ dự kiến và cụm từ bị cấm là tên của các nút gửi cho các hình thức khác nhau và dự kiếnphraseform và cấmphraseform là các hình thức.
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')