Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

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



  • 在openerp官方文档中, 以及国内社区流行的开发手册中, 对Fuctional fields是这样描述:<br />fnct, arg=None, fnct_inv=None, fnct_inv_arg=None, type="float",fnct_search=None, obj=None, method=False, store=False, multi=False<br /><br /><br />其中,如果参数method 指定为true,则fnct和fnct_inv是对象的方法, 其原型为<br />def fnct(self, cr, uid, ids, field_name, ....<br /><br />而如果参数method指定为False (或不指定,因False为缺省值),则fnct和fnct_inv是全函数,原型为<br />def fnct(cr, table, ids, field_name, ...<br /><br />然而,在open erp 7.0实现的各个业务模块源码中,我们看到的Fuctional fields没有指定参数method, 而fnct的原型是def fnct(self, cr.... 这种所谓参数method指定为true的方式。难道在openerp 7.0中,参数method的默认值由False 改成了 False了?<br /><br />常言说的好, 源码就是最好的文档。 让我们看看实现Fuctional fields的文档吧, 它位于osv/fields.py之中。 源码从第844行开始有连续近200行的注释, 只字未提参数method, 对fnct的原型介绍也修改成了这个样子::<br /><br />def fnct(model, cr, uid, ids, field_name, ...<br />    其中 model: model to which the field belongs (should be self for a model method)<br /><br /><br />也就是说, 在openerp 7.0中,定义Fuctional field时 已经不再使用参数method. 不论是对象的方法还是全局函数, fnct的原型都一样了。在openerp官方最新版的技术备忘录中,已经就此做了修改。<br />[img]http://ww3.sinaimg.cn/bmiddle/53d31817jw1eb403jmq1tj20j60awtap.jpg[/img]



  • 在openerp官方文档中, 以及国内社区流行的开发手册中, 对Fuctional fields是这样描述:<br />fnct, arg=None, fnct_inv=None, fnct_inv_arg=None, type="float",fnct_search=None, obj=None, method=False, store=False, multi=False<br /><br /><br />其中,如果参数method 指定为true,则fnct和fnct_inv是对象的方法, 其原型为<br />def fnct(self, cr, uid, ids, field_name, ....<br /><br />而如果参数method指定为False (或不指定,因False为缺省值),则fnct和fnct_inv是全函数,原型为<br />def fnct(cr, table, ids, field_name, ...<br /><br />然而,在open erp 7.0实现的各个业务模块源码中,我们看到的Fuctional fields没有指定参数method, 而fnct的原型是def fnct(self, cr.... 这种所谓参数method指定为true的方式。难道在openerp 7.0中,参数method的默认值由False 改成了 False了?<br /><br />常言说的好, 源码就是最好的文档。 让我们看看实现Fuctional fields的文档吧, 它位于osv/fields.py之中。 源码从第844行开始有连续近200行的注释, 只字未提参数method, 对fnct的原型介绍也修改成了这个样子::<br /><br />def fnct(model, cr, uid, ids, field_name, ...<br />    其中 model: model to which the field belongs (should be self for a model method)<br /><br /><br />也就是说, 在openerp 7.0中,定义Fuctional field时 已经不再使用参数method. 不论是对象的方法还是全局函数, fnct的原型都一样了。在openerp官方最新版的技术备忘录中,已经就此做了修改。<br />[img]http://ww3.sinaimg.cn/bmiddle/53d31817jw1eb403jmq1tj20j60awtap.jpg[/img]



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


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待