Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mengendalikan Penyerahan Borang Kotak Semak dalam Django Apabila Kotak Semak Tidak Dipilih?

Bagaimana Mengendalikan Penyerahan Borang Kotak Semak dalam Django Apabila Kotak Semak Tidak Dipilih?

Linda Hamilton
Linda Hamiltonasal
2024-11-16 18:01:021016semak imbas

How to Handle Checkbox Form Submissions in Django When a Checkbox is Not Selected?

Django MultiValueDictKeyError: Mengendalikan Penyerahan Borang Kotak Semak

Apabila cuba mengisi objek daripada borang, anda mungkin menghadapi MultiValueDictKeyError jika borang mengandungi kotak semak yang tidak dipilih. Ralat ini berpunca daripada ketiadaan kunci yang sepadan dalam objek permintaan HTTP kerana kotak pilihan tidak mengembalikan nilai apabila dinyahtanda.

Untuk menyelesaikan isu ini, gunakan kaedah dapatkan yang disediakan oleh MultiValueDict (juga terdapat dalam kamus standard) untuk mendapatkan semula nilai kotak semak dengan anggun. Kaedah ini menerima kunci (bersamaan dengan nama kotak pilihan) dan nilai lalai pilihan untuk dikembalikan jika kunci tidak ada.

Sebagai contoh, jika is_private mewakili kotak pilihan dalam borang anda, baris berikut akan mengendalikan dengan berkesan kedua-dua senario yang ditanda dan tidak ditanda:

is_private = request.POST.get('is_private', False)

Dalam kes ini, jika kotak pilihan ditandakan, is_private akan menerimanya nilai yang dikemukakan; jika tidak, ia akan lalai kepada False.

Ingat, sintaks umum untuk kaedah get ialah:

my_var = dict.get(key, default)

Atas ialah kandungan terperinci Bagaimana Mengendalikan Penyerahan Borang Kotak Semak dalam Django Apabila Kotak Semak Tidak Dipilih?. 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