Django MultiValueDictKeyError : gestion des soumissions de formulaires de cases à cocher
Lorsque vous essayez de remplir un objet à partir d'un formulaire, vous pouvez rencontrer une MultiValueDictKeyError si le formulaire contient une case à cocher qui n'est pas cochée. Cette erreur provient de l'absence de clé correspondante dans l'objet de requête HTTP car la case à cocher ne renvoie aucune valeur lorsqu'elle n'est pas cochée.
Pour résoudre ce problème, utilisez la méthode get fournie par MultiValueDict (également présente dans les dictionnaires standards) pour récupérer la valeur de la case à cocher avec élégance. Cette méthode accepte une clé (correspondant au nom de la case à cocher) et une valeur par défaut facultative à renvoyer si la clé n'est pas présente.
Par exemple, si is_private représente une case à cocher dans votre formulaire, la ligne suivante gérerait efficacement scénarios cochés et non cochés :
is_private = request.POST.get('is_private', False)
Dans ce cas, si la case est cochée, is_private recevra sa valeur soumise ; sinon, la valeur par défaut sera False.
N'oubliez pas que la syntaxe générale de la méthode get est :
my_var = dict.get(key, default)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!