Mengendalikan Berbilang Borang pada Satu Halaman dalam Django
Apabila bekerja dengan berbilang borang pada satu templat Django, adalah penting untuk menentukan bentuk yang mana sedang dikemukakan untuk mengelakkan pemprosesan kedua-dua borang secara serentak. Cabaran utama terletak pada mengenal pasti borang yang dikehendaki dalam data POST.
Pilihan Borang Berbilang
Terdapat beberapa pendekatan untuk menangani isu ini:
Contoh Penyelesaian
Pertimbangkan senario berikut di mana kami mempunyai dua bentuk pada halaman: expectedphraseform dan bannedphraseform. Untuk mengendalikan penyerahan mereka, kami menggunakan kod berikut:
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')
Dalam contoh ini, kami menyemak data POST untuk nilai butang hantar. Berdasarkan nilai, kami membuat instantiat borang yang sepadan dan cuba menyimpannya. Awalan memastikan data yang diserahkan diikat dengan betul pada borang.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Berbilang Borang pada Halaman Django Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!