Bagaimanakah Saya Boleh Mengendalikan Berbilang Borang pada Halaman Django Tunggal?

Barbara Streisand
Lepaskan: 2024-11-19 04:22:02
asal
762 orang telah melayarinya

How Can I Handle Multiple Forms on a Single Django Page?

Mengendalikan Berbilang Borang pada Halaman Django Tunggal

Apabila bekerja dengan berbilang borang pada halaman templat Django tunggal, mengenal pasti borang yang telah diserahkan boleh menjadi satu cabaran. Soalan ini menangani isu dan menyediakan penyelesaian menggunakan awalan borang.

Jika satu borang digunakan, pendekatan standard adalah untuk menyemak kaedah permintaan dan memproses borang tersebut dengan sewajarnya:

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

Walau bagaimanapun, dengan berbilang borang, menentukan yang mana satu untuk diproses semasa hanya menerima satu permintaan. Objek POST boleh menjadi rumit. Penyelesaian yang dicadangkan dalam soalan ini melibatkan penggunaan awalan borang, membenarkan paparan membezakan antara borang.

Penyelesaian yang disediakan mencipta dua contoh borang, satu untuk setiap borang yang dijangkakan, dan kemudian memeriksa nilai butang hantar dalam POST data. Dengan menggunakan awalan dalam nama borang dan serahkan nama butang, kod boleh menentukan borang yang telah diserahkan:

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

Pendekatan ini mengendalikan berbilang borang dengan berkesan pada satu halaman Django, memastikan hanya borang yang dimaksudkan diproses dan disahkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Berbilang Borang pada Halaman Django Tunggal?. 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