跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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中表单中添加按钮点击会出发保存表单中的内容?

odoo中表单中添加按钮点击会出发保存表单中的内容?

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
19 帖子 5 发布者 9.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 鲍 离线
    鲍 离线
    鲍永道
    在 回复了 Siyuan 最后由 编辑
    #8

    @siyuan 一般定义的name方法是用来操作模块数据的,我另外的方法代码:
    0_1502697401945_微信图片_20170814155628.png

    1 条回复 最后回复
    0
    • S 离线
      S 离线
      Siyuan
      写于 最后由 编辑
      #9
      1. odoo js框架 的修改属于比较中高级的,如果不是对最基本的xml+.py文件很熟悉的话,
        我不介意你修改js (当然我不知道你有什么具体业务需要,导致目前的odoo框架满足不了需求)

      2. 你在xml文件里面加button,走的肯定还是odoo js 框架默认的form 渲染流程,按钮点击会触发保存事件。

      如果你不要触发保存事件.

      A. 修改web模块里面form view 的保存机制,但除非你对odoo js 框架非常熟悉,不然不推荐,因为不知道会不会改出其他问题。

      B. 参考附件上传widget,自己写个widget,和form view 本身独立开,自己控制widget上的按钮事件,这个和.py文件的通讯要自己解决。
      (odoo js 框架本身有封装调用.py的方法,call_kw)

      如果你是odoo 初学者,我不介意你这么做;真有需要,最好找资深的二次开发的人员咨询(应该会收费)

      鲍 2 条回复 最后回复
      0
      • 鲍 离线
        鲍 离线
        鲍永道
        在 回复了 Siyuan 最后由 编辑
        #10

        @siyuan 非常感谢你,谢谢这么全面友好的建议,非常感谢。

        1 条回复 最后回复
        0
        • 鲍 离线
          鲍 离线
          鲍永道
          写于 最后由 编辑
          #11

          我已经解决了这个bug,我是在odoo前端js基础上进行调整的,代码也非常简单,只是在找事件代码花费了一天多的时间,有需要的调整的朋友可以直接联系我。

          H 1 条回复 最后回复
          0
          • 鲍 离线
            鲍 离线
            鲍永道
            写于 最后由 编辑
            #12

            @Siyuan 也非常感谢管理员@Siyuan 的帮助和建议,非常感谢。

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

              你可以试试用action类型的按钮

              <button name='foo' type='action'/>

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

              1 条回复 最后回复
              0
              • 鲍 离线
                鲍 离线
                鲍永道
                在 回复了 Siyuan 最后由 编辑
                #14

                @siyuan 你好,请问下具体的js调用.py的方法是在哪里呢?或是具体的方法名知道吗?知道这个下次也好自定义按钮。

                S 1 条回复 最后回复
                0
                • S 离线
                  S 离线
                  Siyuan
                  在 回复了 鲍永道 最后由 编辑
                  #15

                  @鲍永道

                  web/static/src/js/framework/model.js

                  /**
                   * Call a method (over RPC) on the bound OpenERP model.
                   *
                   * @param {String} method name of the method to call
                   * @param {Array} [args] positional arguments
                   * @param {Object} [kwargs] keyword arguments
                   * @param {Object} [options] additional options for the rpc() method
                   * @returns {jQuery.Deferred<>} call result
                   */
                  call: function (method, args, kwargs, options) {
                      args = args || [];
                      kwargs = kwargs || {};
                      if (!_.isArray(args)) {
                          // call(method, kwargs)
                          kwargs = args;
                          args = [];
                      }
                      var call_kw = '/web/dataset/call_kw/' + this.name + '/' + method;
                      return session.rpc(call_kw, {
                          model: this.name,
                          method: method,
                          args: args,
                          kwargs: kwargs
                      }, options);
                  },
                  
                  鲍 1 条回复 最后回复
                  0
                  • 鲍 离线
                    鲍 离线
                    鲍永道
                    在 回复了 Siyuan 最后由 编辑
                    #16

                    @siyuan 非常感谢,我具体需要研究下,方便下次自定义使用,再次感谢。

                    1 条回复 最后回复
                    0
                    • H 离线
                      H 离线
                      hui
                      在 回复了 鲍永道 最后由 编辑
                      #17

                      @鲍永道
                      我想知道odoo服务端怎么跟前端联系的,还有就是前端通过attr设置的必填的选项,这个odoo是怎么检查的?

                      digitalsatoriD 1 条回复 最后回复
                      0
                      • digitalsatoriD 离线
                        digitalsatoriD 离线
                        digitalsatori 管理员
                        在 回复了 hui 最后由 digitalsatori 编辑
                        #18

                        @1234567 在 odoo中表单中添加按钮点击会出发保存表单中的内容? 中说:

                        @鲍永道
                        我想知道odoo服务端怎么跟前端联系的,还有就是前端通过attr设置的必填的选项,这个odoo是怎么检查的?

                        服务器端跟前端联系?只有websocket这样的协议才有可能实现前后端的双向通信。http协议只有前端向后端发请求,并且是无状态的(就是下一个请求完全不知道上一个请求干了啥),没有反过来的 😉

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

                        H 1 条回复 最后回复
                        1
                        • H 离线
                          H 离线
                          hui
                          在 回复了 digitalsatori 最后由 编辑
                          #19

                          @digitalsatori
                          我表述的有问题。应该是前端如何向后端发送请求,还有odoo种简单实现按钮变色的js是怎样的,没有html不知如何处理?谢谢指导。

                          1 条回复 最后回复
                          0

                          • 登录

                          • 没有帐号? 注册

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