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

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

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 在官方模块的类中嵌入代码

在官方模块的类中嵌入代码

已定时 已固定 已锁定 已移动 Odoo 新手求助
10 帖子 5 发布者 5.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zhumeng_459
    写于 最后由 编辑
    #1

    在OE的采购申请中,有个按钮可以解发采购申请对象的 make_purchase_order 方法,按采购申请中的明细生成一张采购订单。
      我想在这个方法中对采购订单的明细多写入一个字段。
      除了直接改 make_purchase_order 的代码外,还可以怎么搞?直接改官方的代码,升级的时候比较不方便。

    1 条回复 最后回复
    0
    • JoshuaJ 离线
      JoshuaJ 离线
      Joshua 管理员
      写于 最后由 编辑
      #2

      可以通过模块继承来修改官方模块。

      【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

      1 条回复 最后回复
      0
      • Z 离线
        Z 离线
        zhumeng_459
        写于 最后由 编辑
        #3

        谢谢回复!
          按我的理解 ,如果继承的话,只能整个方法继承或者不继承。但是我想在下面这个语句中间插入,该如何实现?

                        purchase_order_line.create(cr, uid, {
                            'order_id': purchase_id,
                            'name': product.partner_ref,
                            'product_qty': qty,
                            'product_id': product.id,
                            'product_uom': default_uom_po_id,
                            'price_unit': seller_price,
                            'date_planned': date_planned,
                            'notes': product.description_purchase,
                            'taxes_id': [(6, 0, taxes)],

                            #插入自定义字段的赋值

                        }, context=context)

        1 条回复 最后回复
        0
        • mrshellyM 离线
          mrshellyM 离线
          mrshelly
          写于 最后由 编辑
          #4

          在线开发... 给对象添加一个字段...

          1 条回复 最后回复
          0
          • Z 离线
            Z 离线
            zhumeng_459
            写于 最后由 编辑
            #5

            可能是我没表达清楚。
              自定义字段已经加好了,现在给字段赋值的时候,要把赋值语句插入到官方模块的代码的一段for语句中间,我不想这么干,但是用继承又好像实现不了……

            1 条回复 最后回复
            0
            • JoshuaJ 离线
              JoshuaJ 离线
              Joshua 管理员
              写于 最后由 编辑
              #6

              继承可以做到,你可以把官方整个函数都继承了,中间怎么写都行。

              【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

              1 条回复 最后回复
              0
              • digitalsatoriD 离线
                digitalsatoriD 离线
                digitalsatori 管理员
                写于 最后由 编辑
                #7

                继承了对象就同时继承了该对象的所有属性和方法,你要对某个方法进行修改可以对该方法进行覆写,也就是重新定义该方法,为了达到代码共用的目的,可以使用Super函数运行原方法并获得该方法返回的结果并添加你的逻辑来修改该结果,或者首先执行你的逻辑,然后将你的逻辑产生的值变为你用Super函数调用原方法是的参数,如果你的修改逻辑是存在于原方法之中的,无法使用以上两种方法实现代码共用的目的,你可以直接将原方法中的代码复制到你的覆写的方法中并进行修改。

                对与你的问题,可能不需要进行方法覆写就可以完成,比如在继承对象上增加_defaults属性即可。

                另外做个广告,我们提供OpenERP开发培训,有兴趣者可以跟我们联系,联系方式在签名中

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

                1 条回复 最后回复
                0
                • Z 离线
                  Z 离线
                  zhumeng_459
                  写于 最后由 编辑
                  #8

                  如楼上所说,获取返回值再处理, 以及调用super方法都搞不定,因为代码要嵌入到中间。我是想把采购申请的ID也传递到采购订单明细中去,作关联,因此也不能用_defaults实现。如此一来,就只有复制代码到子类的方法中了。
                    如果官方代码改变的话,那么,我也要跟着再复制一次,改一次了。
                    要是官方代码中相应的位置有调用空函数,然后再由开发者二次开发实现这个函数就好了。

                  1 条回复 最后回复
                  0
                  • wjfonhandW 离线
                    wjfonhandW 离线
                    wjfonhand
                    写于 最后由 编辑
                    #9

                    你还没入门呢,让校长给你讲讲怎么做到。不免费

                    GoodERP -- Odoo China fork

                    1 条回复 最后回复
                    0

                    • 登录

                    • 没有帐号? 注册

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