Tengo un modelo de consumidor con varios campos, donde también he especificado sus valores por defecto; p.ej
age = models.CharField(default="no information", max_length=50)Uso el siguiente fragmento para publicar un nuevo consumidor en mi base de datos MongoDB:
if request.method == 'POST': try: consumer_data = JSONParser().parse(request) consumer_serializer = ConsumerModelSerializer(data=consumer_data) if consumer_serializer.is_valid(): consumer_serializer.save() collection_name.insert_one(consumer_serializer.data) response = { 'message': "Successfully uploaded a consumer with id = %d" % consumer_serializer.data.get('id'), 'consumers': [consumer_serializer.data], 'error': "" } return JsonResponse(response, status=status.HTTP_201_CREATED) else: error = { 'message': "Can not upload successfully!", 'consumers': "[]", 'error': consumer_serializer.errors } return JsonResponse(error, status=status.HTTP_400_BAD_REQUEST) except: exceptionError = { 'message': "Can not upload successfully!", 'consumers': "[]", 'error': "Having an exception!" } return JsonResponse(exceptionError, status=status.HTTP_500_INTERNAL_SERVER_ERROR)Cuando completo todos los campos en mi formulario Angular y publico, todo funciona bien. Sin embargo, cuando dejo un campo en blanco , recibo un mensaje de error de solicitud incorrecta y la publicación no se procesa.
Inicialmente, pensé que era porque no tenía campos predeterminados en mi modelo de Django, pero incluso después de agregarlos, sigo teniendo esto.
¿Cómo puedo modificar el fragmento de código para permitirme publicar con campos en blanco?
Esto no solo me ahorra tiempo probando y completando el formulario muchas veces, sino que también un usuario de la aplicación podría dejar algunos campos en blanco...
Simplemente agregue blank=True y asegúrese de que también haya un parámetro default :
age = models.CharField(default="no information", max_length=50, blank=True)