跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • 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. Openerp 7.0开发文档中Fuctional fields的纰漏

Openerp 7.0开发文档中Fuctional fields的纰漏

已定时 已固定 已锁定 已移动 Odoo 文档合作
3 帖子 2 发布者 6.6k 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • L 离线
    L 离线
    laoliu
    发表于 最后由 编辑
    #1

    在openerp官方文档中, 以及国内社区流行的开发手册中, 对Fuctional fields是这样描述:
    fnct, arg=None, fnct_inv=None, fnct_inv_arg=None, type="float",fnct_search=None, obj=None, method=False, store=False, multi=False


    其中,如果参数method 指定为true,则fnct和fnct_inv是对象的方法, 其原型为
    def fnct(self, cr, uid, ids, field_name, ....

    而如果参数method指定为False (或不指定,因False为缺省值),则fnct和fnct_inv是全函数,原型为
    def fnct(cr, table, ids, field_name, ...

    然而,在open erp 7.0实现的各个业务模块源码中,我们看到的Fuctional fields没有指定参数method, 而fnct的原型是def fnct(self, cr.... 这种所谓参数method指定为true的方式。难道在openerp 7.0中,参数method的默认值由False 改成了 False了?

    常言说的好, 源码就是最好的文档。 让我们看看实现Fuctional fields的文档吧, 它位于osv/fields.py之中。 源码从第844行开始有连续近200行的注释, 只字未提参数method, 对fnct的原型介绍也修改成了这个样子::

    def fnct(model, cr, uid, ids, field_name, ...
        其中 model: model to which the field belongs (should be self for a model method)


    也就是说, 在openerp 7.0中,定义Fuctional field时 已经不再使用参数method. 不论是对象的方法还是全局函数, fnct的原型都一样了。在openerp官方最新版的技术备忘录中,已经就此做了修改。
    [img http://ww3.sinaimg.cn/bmiddle/53d31817jw1eb403jmq1tj20j60awtap.jpg /img]

    1 条回复 最后回复
    0
    • T 离线
      T 离线
      thm1118
      发表于 最后由 编辑
      #2

      真棒,我也奇怪method从没看到

      1 条回复 最后回复
      0

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

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

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

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


      • 登录

      • 没有帐号? 注册

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