Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    导入csv问题

    Odoo 开发与实施交流
    2
    3
    279
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 风
      风飞花 最后由 风飞花 编辑

      在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')
      
      1 条回复 最后回复 回复 引用 0
      • digitalsatori
        digitalsatori 管理员 最后由 digitalsatori 编辑

        你贴出来的程序本身就是判断csv的第一行里有没有‘Serial Number’, 如果没有就报错。不过程序写得也是很粗糙的,至少没有考虑Windows和Linux的换行符有不同的。建议还是不要用这种模块的好。

        【上海先安科技】(tony AT openerp.cn)

        1 条回复 最后回复 回复 引用 0
        • 风
          风飞花 最后由 编辑

          比如第一行内容如下:

          Serial Number,aaaa,bbbb
          

          上边的代码好像也会提示:'Row header name "Serial Number" is not found in CSV file'
          是有这个情况,,所以问问,,是代码有问题还是可能是其他问题

          1 条回复 最后回复 回复 引用 0
          • First post
            Last post