Foros del Web » Programando para Internet » Python »

error al validar campos en blanco

Estas en el tema de error al validar campos en blanco en el foro de Python en Foros del Web. HOla tengo un formulario que carga archivos de excel con el metodo post en donde valido y compara si la estructura del excel esta bien, ...
  #1 (permalink)  
Antiguo 06/10/2014, 10:08
 
Fecha de Ingreso: julio-2011
Ubicación: Peru
Mensajes: 92
Antigüedad: 12 años, 9 meses
Puntos: 1
error al validar campos en blanco

HOla tengo un formulario que carga archivos de excel con el metodo post en donde valido y compara si la estructura del excel esta bien, pero probando sin llenar ningun campo hago click en el boton "enviar"qq mi sale este error

MultiValueDictKeyError at /DataExcel

"'file'"


aca le sdejo el codigo

Código Python:
Ver original
  1. def post(self, request, *args, **kwargs):
  2.  
  3.         file = request.FILES['file']
  4.         libro = xlrd.open_workbook(file_contents=file.read())
  5.         hoja1 = libro.sheet_by_index(0)
  6.  
  7.         cabecera_ripley = ('codsucursal', 'sucursal', 'coddivision', 'division', 'codarea', 'area', 'coddpto', 'dpto', 'codlinea',
  8.                                 'linea', 'codsublinea', 'sublinea', 'codmodelo', 'modelo', 'codvariacion', 'variacion', 'codmarca',
  9.                                 'marca', 'codproveedor', 'proveedor', 'temporada', 'procedencia', 'tiponeg', 'color', 'talla',
  10.                                 'semantig', 'conventa', 'constockoh', 'esrebate', 'concobertura', 'vtaund', 'vtasmf', 'contr',
  11.                                 'costo', 'stock_oh', 'costo_oh', 'cbt')
  12.  
  13.  
  14.         nombres_excel_ripley = tuple([str(cell).lower() for cell in hoja1.row_values(0)])
  15.  
  16.         cabecera_saga =(u'codigo',u'consignaciòn',u'tipo trx.',u'fecha proceso',u'fecha trx.',u'local',
  17.                         u'ccosto',u'subclase',u'ean',u'sku',u'descripcion sku',u'caja vta',u'nro.trx. vta',u'cantidad',
  18.                         u'base imponible vta',u'impto vta',u'monto timbrado vta',u'tipo comision',u'monto comision',
  19.                         u'costo vta',u'igv costo vta',u'total costo vta',u'local trx ori',u'fecha trx ori',u'caja trx ori',u'nro trx ori')
  20.  
  21.         nombres_excel_saga = tuple([unicode(cell).lower() for cell in hoja1.row_values(5)])
  22.  
  23.  
  24.         if int(request.POST['tienda']) == 1:
  25.             if cabecera_ripley != nombres_excel_ripley:
  26.                 return render_to_response('app/dataexcel_form.html', {'mensaje':'Archivo de excel de Ripley esta modificado','form': self.form_class},context_instance=RequestContext(request))
  27.             else:
  28.                 form = self.get_form(self.form_class)
  29.                 if form.is_valid():
  30.                     self.form_valid(form)
  31.                     return redirect('list_upload_file')
  32.  
  33.         else:
  34.             if cabecera_saga != nombres_excel_saga:
  35.                 return render_to_response('app/dataexcel_form.html', {'mensaje': 'Archivo de excel de Saga esta modificado','form': self.form_class},context_instance=RequestContext(request))
  36.             else:
  37.                 form = self.get_form(self.form_class)
  38.                 if form.is_valid():
  39.                     self.form_valid(form)
  40.                     return redirect('list_upload_file')


esperando su pronta ayuda gracias
  #2 (permalink)  
Antiguo 06/10/2014, 17:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: error al validar campos en blanco

El problema esta aquí:

Código Python:
Ver original
  1. file = request.FILES['file']

Tienes que checar si el archivo esta:
Código Python:
Ver original
  1. if 'file' in request.FILES:
  2.     file = request.FILES['file']
  3.     # ...

Etiquetas: blanco, campo, campos, excel, red
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:27.