导入csv问题
-
在apps.odoo.com上边找到inventory_serial_import这个apps,其中inventory_serial_import中,有一个代码如下:
它有一个Serial Number的判断,,但我发现,如果按照表格的形式来看,第一列表头是Serial Number,第二列表头如果是别的名字也会提示Row header name "Serial Number" is not found in CSV file,是什么情况?如果只是判断存在一个Serial Number就行,,一个都没有就提示,,是怎么处理(或者说代码正确,而是别的问题造成这种提示)class stock(models.Model): _inherit = "stock.move" file_import = fields.Binary("Import 'csv' File", help="*Import a list of lot/serial numbers from a csv file \n *Only csv files is allowed" "\n *The csv file must contain a row header namely 'Serial Number'") file_name = fields.Char("file name") # importing "csv" file and appending the datas from file to order lines @api.multi def input_file(self): if self.file_import: file_value = self.file_import.decode("utf-8") filename, FileExtension = os.path.splitext(self.file_name) if FileExtension != '.csv': raise UserError("Invalid File! Please import the 'csv' file") data_list = [] input_file = base64.b64decode(file_value) lst = [] for loop in input_file.decode("utf-8").split("\n"): lst.append(loop) if 'Serial Number' not in lst[0]: raise UserError('Row header name "Serial Number" is not found in CSV file')
-
你贴出来的程序本身就是判断csv的第一行里有没有‘Serial Number’, 如果没有就报错。不过程序写得也是很粗糙的,至少没有考虑Windows和Linux的换行符有不同的。建议还是不要用这种模块的好。