Heim >Backend-Entwicklung >Python-Tutorial >Wie gehe ich mit Kontrollkästchen-Formularübermittlungen in Django um, wenn ein Kontrollkästchen nicht ausgewählt ist?

Wie gehe ich mit Kontrollkästchen-Formularübermittlungen in Django um, wenn ein Kontrollkästchen nicht ausgewählt ist?

Linda Hamilton
Linda HamiltonOriginal
2024-11-16 18:01:021016Durchsuche

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

Django MultiValueDictKeyError: Umgang mit Checkbox-Formularübermittlungen

Beim Versuch, ein Objekt aus einem Formular auszufüllen, kann ein MultiValueDictKeyError auftreten, wenn das Formular enthält ein Kontrollkästchen, das nicht aktiviert ist. Dieser Fehler ist auf das Fehlen eines entsprechenden Schlüssels im HTTP-Anforderungsobjekt zurückzuführen, da das Kontrollkästchen keinen Wert zurückgibt, wenn es nicht aktiviert ist.

Um dieses Problem zu beheben, verwenden Sie die von MultiValueDict bereitgestellte get-Methode (auch in Standardwörterbüchern vorhanden). um den Kontrollkästchenwert ordnungsgemäß abzurufen. Diese Methode akzeptiert einen Schlüssel (entsprechend dem Namen des Kontrollkästchens) und einen optionalen Standardwert, der zurückgegeben wird, wenn der Schlüssel nicht vorhanden ist.

Wenn is_private beispielsweise ein Kontrollkästchen in Ihrem Formular darstellt, würde die folgende Zeile effektiv verarbeiten Sowohl aktivierte als auch nicht aktivierte Szenarien:

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

Wenn in diesem Fall das Kontrollkästchen aktiviert ist, erhält is_private seinen übermittelten Wert. andernfalls wird standardmäßig „False“ verwendet.

Denken Sie daran, dass die allgemeine Syntax für die get-Methode lautet:

my_var = dict.get(key, default)

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Kontrollkästchen-Formularübermittlungen in Django um, wenn ein Kontrollkästchen nicht ausgewählt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn