Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mengendalikan Berbilang Borang pada Halaman Tunggal di Django?

Bagaimana Mengendalikan Berbilang Borang pada Halaman Tunggal di Django?

Linda Hamilton
Linda Hamiltonasal
2024-11-28 19:43:12408semak imbas

How to Handle Multiple Forms on a Single Page in Django?

Mengendalikan Berbilang Borang pada Halaman Tunggal dalam Django

Dalam Django, pengendalian berbilang borang pada satu halaman memerlukan pertimbangan yang teliti. Pendekatan biasa untuk mengendalikan satu bentuk, seperti yang ditunjukkan di bawah:

if request.method == 'POST':
    form = AuthorForm(request.POST,)
    if form.is_valid():
        form.save()
        # do something.
else:
    form = AuthorForm()

menjadi tidak mencukupi apabila berurusan dengan pelbagai bentuk. Untuk menangani senario ini dengan betul, paparan mesti menentukan borang yang telah diserahkan.

Membezakan Penyerahan Borang

Satu pendekatan adalah dengan memasukkan nilai butang hantar unik untuk setiap borang. Dengan menghuraikan data POST, paparan boleh mengenal pasti butang hantar yang diklik dan memproses borang yang sepadan.

Pelaksanaan Menggunakan Nilai Butang Hantar

Sebagai contoh, pertimbangkan dua bentuk bernama expectedphraseform dan bannedphraseform dengan butang submit dinamakan frasa jangkaan dan frasa larangan masing-masing. Coretan kod berikut menggambarkan cara mengendalikan berbilang borang menggunakan nilai butang hantar:

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')

Dengan menggunakan nilai butang hantar yang unik, paparan boleh membezakan antara penyerahan borang dengan berkesan dan memproses borang yang dimaksudkan dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Berbilang Borang pada Halaman Tunggal di Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn