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
Lepaskan: 2024-11-28 19:43:12
asal
449 orang telah melayarinya

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()
Salin selepas log masuk

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')
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan