跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. 导入csv问题

导入csv问题

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
3 帖子 2 发布者 1.3k 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 风 离线
    风 离线
    风飞花
    发表于 最后由 风飞花 编辑
    #1

    在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
    • D 离线
      D 离线
      digitalsatori
      管理员
      发表于 最后由 digitalsatori 编辑
      #2

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

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

      1 条回复 最后回复
      0
      • 风 离线
        风 离线
        风飞花
        发表于 最后由 编辑
        #3

        比如第一行内容如下:

        Serial Number,aaaa,bbbb
        

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

        1 条回复 最后回复
        0

        你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

        厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

        有了你的建议,这篇帖子会更精彩哦 💗

        注册 登录
        回复
        • 在新帖中回复
        登录后回复
        • 从旧到新
        • 从新到旧
        • 最多赞同


        • 登录

        • 没有帐号? 注册

        • 登录或注册以进行搜索。
        • 第一个帖子
          最后一个帖子
        0
        • 版块
        • 标签
        • 热门
        • 用户
        • 群组