原来有的导入功能相信很多小伙伴对其功能不是很满意,不过没关系,我们可以二开啊,把它的功能改造成你想要的样子,接下来让我们看看怎么办吧

  • 例如我想把员工导入功能中添加上用户同步注册功能

  • 首先,我要找到原模块中导入时调用的模型——importUser.py文件

  • 找到这个文件之后打开 HtkjtImport 类,该类继承import基础模块

      class HtkjtImport(models.TransientModel):
    _inherit = "base_import.import"
  • 在该类下面找到 do 方法,将其重写

  • 当然咯,重写该方法或者其他方法都可以,不一定就选择这个

  • 代码风格规范一点的也可以自己新建一个方法,然后调用就可以了

    @api.multi

    def do(self, fields, columns, options, dryrun=False):

      self.ensure_one()
    self._cr.execute('SAVEPOINT import') try:
    data, import_fields = self._convert_import_data(fields, options)
    # Parse date and float field
    data = self._parse_import_data(data, import_fields, options)
    except ValueError as error:
    return {
    'messages': [{
    'type': 'error',
    'message': pycompat.text_type(error),
    'record': False,
    }]
    } _logger.info('importing %d rows...', len(data)) name_create_enabled_fields = options.pop('name_create_enabled_fields', {})
    model = self.env[self.res_model].with_context(import_file=True,
    name_create_enabled_fields=name_create_enabled_fields)
    import_result = model.load(import_fields, data)
    _logger.info('done') # If transaction aborted, RELEASE SAVEPOINT is going to raise
    # an InternalError (ROLLBACK should work, maybe). Ignore that.
    try:
    if dryrun:
    self._cr.execute('ROLLBACK TO SAVEPOINT import')
    # cancel all changes done to the registry/ormcache
    self.pool.reset_changes()
    else:
    self._cr.execute('RELEASE SAVEPOINT import')
    except psycopg2.InternalError:
    pass # 导入成功后更新插入映射列
    if import_result['ids'] and options.get('headers'):
    BaseImportMapping = self.env['base_import.mapping']
    for index, column_name in enumerate(columns):
    if column_name:
    # Update to latest selected field
    exist_records = BaseImportMapping.search(
    [('res_model', '=', self.res_model), ('column_name', '=', column_name)])
    if exist_records:
    exist_records.write({'field_name': fields[index]})
    else:
    BaseImportMapping.create({
    'res_model': self.res_model,
    'column_name': column_name,
    'field_name': fields[index]
    }) for da in data:
    print(da[1])
    print(da[3]) data = {
    'name': da[1],
    'display_name': da[1],
    'email': da[3],
    }
    partner = self.env['res.partner'].create(data)
    print(partner.id) data = {
    'login': da[3],
    'password': 123456,
    'partner_id': partner.id,
    }
    user = self.env['res.users'].create(data) return import_result

odoo导入功能二开的更多相关文章

  1. 使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神

    使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神 前言 接上一篇 使用 EPPlus 封装的 excel 表格导入功能 (一) 前一篇的是大概能用但是 ...

  2. xadmin引入django-import-export导入功能

    一.安装 由于xadmin自带的包里面已经包含了django-import-export 所以不用再pip install django-import-export了 但是xadmin管理后台只有导出 ...

  3. 【odoo】关于odoo二开模块规范的一点思考

    老韩头的开发日常 ☞ [好书学习]系列 背景 作为丙方,完成了甲方的二开需求.因此,在设计二开模块的时候,考虑的是当时所列的需求清单,并整合到一个二开模块中.完成交付后,客户评价蛮好的.因此,成功的为 ...

  4. 027医疗项目-模块二:药品目录的导入导出-导入功能的Action的编写

    前一篇文章我们写了Service层,这篇文章我们写一下Action层. 实现的功能: 1:我们先下载模板:然后按照模板里面的规则,插入数据.比如存在d盘. 2:然后浏览找到那个文件,上传上去. 然后把 ...

  5. 026医疗项目-模块二:药品目录的导入导出-导入功能的Service的编写

    这个导入功能要实现的效果是: 思路是: 因为我们最后是在Action层中调用的HxlsRead工具,这个工具传入的就是我们要实现的上一篇文章说到的实现了HxlsOptRowsInterface接口的类 ...

  6. Odoo:全球第一免费开源ERP库龄表的简单实现方法(无需二开)

    问题背景 希望查看库龄超过30天的货物,该如何实现?此种简单数据查询需要二开吗? 解决方案 方法一:Stock Quant列表视图增加过滤器 <filter string="库龄超30 ...

  7. NC57,NC63-NC二开经验总结

    版主2010级市场营销专业本科生 2013年8月入达内培训Java相关技术 12月入职,做用友NC的二次开发工作 2015年4月离职,4中下旬入职一家互联网金融企业 下面是做NC二开期间积累的一些常用 ...

  8. 还在写SQL做SAP二开?通过RFC调用NetWeaver,让HANA数据库操作更可靠

    相比于从零开始构建全套信息化系统,基于成熟的ERP等行业软件做二次开发是更多中大型企业应对个性化软件需求的首选方案.如何在二开模块中,可靠地对成品软件的数据库进行读写操作,以满足单据自动创建.元数据自 ...

  9. 解析大型.NET ERP系统 设计通用Microsoft Excel导入功能

    做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到 ...

随机推荐

  1. 稳定排序nlogn之归并排序_一维,二维

    稳定排序nlogn之归并排序_一维,二维 稳定排序:排序时间稳定的排序 稳定排序包括:归并排序(nlogn),基数排序[设待排序列为n个记录,d个关键码,关键码的取值范围为radix,则进行链式基数排 ...

  2. arcgis10.2连接表xlsx格式失败

    需要安装 2007 Office System 驱动程序(AccessDatabaseEngine.exe)

  3. ELK应用之二:Kibana显示Nginx中来访客户端IP地域分布

    在Kibana的visualize中显示Nginx访问日志客户端IP地域分布图 官网介绍: https://www.elastic.co/guide/en/beats/packetbeat/curre ...

  4. C语言复习---比赛问题

    一:比赛问题 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单. ...

  5. CSS 实现图片灰度效果

    非原创-从网上收索出来的文章 CSS实现图片灰度效果就是通过CSS样式让彩色图片呈现为灰色,相当于把一张图像的颜色模式调整为灰度,CSS可以通过以下几种方法来实现灰度效果. 方式1. IE滤镜 img ...

  6. 20155339 2016-2017-2 《Java程序设计》第8周学习总结

    20155339 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十四章NIO与NIO2 NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你设定缓冲 ...

  7. alert换行警示

    alert("再次向您问好!在这里,我们向您演示" + '\n' + "如何向警告框添加折行.")

  8. 关联查询resultMap使用规则总结——(十一)

    resultType: 作用: 将查询结果按照sql列名pojo属性名一致性映射到pojo中. 场合: 常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用re ...

  9. Debian安装Nvidia最简单方法

    电脑配置: Dell本本 i7+gtx1050+8g 安装bumblebee: sudo apt install bumblebee-nvidia primus 以上会自动安装nvidia驱动. bu ...

  10. 在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)【转】

    mysql主从复制架构,是mysql数据库主要特色之一,绝大多数公司都有用到. 而GTID模式是基于事务的复制模式的意思,发展到现在也是越来越多人用. 以前很多文章,介绍搭建mysql主从复制架构,是 ...