current_row = rowsRead+2 r = util.make_row(row) dataRecord = DataRecord(dataset=dataset ) map_column = mappingColumnDict['Small Molecule Batch'] mapped = False if(map_column > -1): try: value = util.convertdata(r[map_column].strip()) if(value != None and value != '' ): value = value.split("-") if len(value) < 2: raise Exception('Small Molecule (Batch) format is #####-###(-#) **Note that (batch) is optional') x = value[0] facility = util.convertdata(x,int) salt = value[1] try: dataRecord.smallmolecule = SmallMolecule.objects.get(facility_id=facility, salt_id=salt) except Exception, e: logger.error(str(('could not locate small molecule:', facility))) raise if(len(value)>2): dataRecord.batch_id = util.convertdata(value[2],int) # TODO: validate that the batch exists? (would need to do for all types, not just Small Molecule mapped = True except Exception, e: logger.error(str(("Invalid Small Molecule (or batch) identifiers: ", value, e,'row',current_row))) raise map_column = mappingColumnDict['Plate'] if(map_column > -1): try: plate_id=None well_id=None