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

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

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

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

Many2one怎样显示数据库查出拼接的两个字段



  • 'product': fields.many2one('mrp.production','product List')

    在 mrp 模块里边的mrp_production:
    _column={}里添加了一个字段 printed_EN,
    问题实际需求:
    我想把该字段和mrp_production里面的name字段,在数据库里的数据查出,
    拼接成"name-printed_EN"  的格式,
    输出到many2one 的下拉框,有什么方法能做到么?   


    哪位技术能不能帮助解决下,感恩~~~



  • 重载 name_get 函数



  • 能给个例子么,在哪个地方重载  name_get



  • 在addons目录下grep一下py文件就知道了。



  • 'product': fields.many2one('mrp.production','product List')

    这里定义的many2one 字 段 是在另一模块里,请问我是在当前这个模块,重载name_get 函数么,
    还是在关联的    mrp.production里重载name_get函数?
    还请给个详细解答,感激不尽!



  • 随意找个 name_get 方法, 读懂它, 然后 照着写 就解决你的问题了. 饭要自己 吃...


  • 管理员

    @Arctic_tern 首先你的这个字段定义就有问题。mrp.production是OpenERP中的“生产订单”(Manufacturing Order), 不应该是你所谓的”Product List“

    Jeff, 谢总监说得很对,OpenERP是开源的项目,最好的学习方式,就是去查看已有的代码。下面给你一点提示:

    要重载某个类方法,你首先要继承这个类,比如要重载mrp.production实体类的name_get方法:

    class ManufacturingOrder(osv.Model):<br />&nbsp; &nbsp; _inherit = &#039;mrp.production&#039;<br />&nbsp; &nbsp; def name_get(self, cr, uid, ids, context=None):<br />&nbsp; &nbsp; &nbsp; &nbsp; bla bla bla<br />
    


  • 感谢各位的给出的提示,但还是很多不明白,
    我看两天name_get,还是不清楚他是怎么被调用的,当我们定义  many2one 字段的时候,下拉框 里面的数据是怎样来的,是自动调用 name_get 么?苦恼啊!
    假如我在自己写的请假单,里定义一个many2one 字段  , 我想从关联的 mrp.production 的 里 取出两个字段的数据,    但是搞不懂 name_get, 是怎么取到相关的数据?

    各位,能开个帖子解说一番么??这个对我们这些新手是莫大的帮助啊!



  • 要玩开发了

    想弄懂调用的关系。


    先源码安装OE,然后 eclipse + pydev 搭建好开发环境

    name_get 下个断点。


    这个一口吃不成胖子,
    俺也弄了很久才有点明白,
    但现在也没全明白



  • 这些个开发环境都搭建完毕了,
    但是这个Breakponit 不知道打在那里好啊,里面哪个例子比较好打短点 的?
    不用走那么多弯路的?想快速弄懂因为,时间不多了!!


Log in to reply