Error de Django MultiValueDictKeyError, ¿cómo lo soluciono?
Estoy intentando guardar un objeto en mi base de datos, pero arroja un MultiValueDictKeyError
error.
El problema radica en el formulario, que is_private
está representado por una casilla de verificación. Si la casilla de verificación NO está seleccionada, obviamente no se pasa nada. Aquí es donde se descarta el error.
¿Cómo trato adecuadamente esta excepción y la detecto?
la linea es
is_private = request.POST['is_private']
Aceptado
Utilice el método de MultiValueDict get
. Esto también está presente en los dictados estándar y es una forma de recuperar un valor y al mismo tiempo proporcionar un valor predeterminado si no existe.
is_private = request.POST.get('is_private', False)
Generalmente,
my_var = dict.get(<key>, <default>)
Elige lo que es mejor para ti:
1
is_private = request.POST.get('is_private', False);
Si is_private
la clave está presente en request.POST, la is_private
variable será igual a ella; si no, será igual a False.
2
if 'is_private' in request.POST:
is_private = request.POST['is_private']
else:
is_private = False
3
from django.utils.datastructures import MultiValueDictKeyError
try:
is_private = request.POST['is_private']
except MultiValueDictKeyError:
is_private = False