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

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

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

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

我想获得销售订单中,产品列表中 单个产品的id,写了一个方法,但是一直没法实现?求大神给出方法!



  • 方法:<br />          def print_order(self, cr, uid, ids,product_id):                                                                                                                      |    print_pct [sale_order]<br /> 872        product_obj = self.pool.get('product.product')                                                                                                                  |    manual_invoice [sale_order<br /> 873        if not product_id:                                                                                                                                              |    action_view_invoice [sale_<br /> 874            raise  osv.except_osv(_('The product is not Defined!'), _('The product is not Defined!'))                                                                    |    test_no_product [sale_orde<br /> 875        product = product_obj.browse(cr, uid, product_id)                                                                                                                |    action_invoice_create [sal<br /> 876        print ""                                                                                                                                        |    action_invoice_cancel [sal<br /> 877        print cr                                                                                                                                                        |    action_invoice_end [sale_o<br /> 878        print uid                                                                                                                                                        |    action_cancel [sale_order]<br /> 879        print product_id                                                                                                                                                |    action_button_confirm [sal<br /> 880        print product_obj                                                                                                                                                |    action_wait [sale_order]<br /> 881        print product                                                                                                                                                    |    action_quotation_send [sal<br /> 882        print ""                                                                                                                                        |    action_done [sale_order]<br /> 883        return product        <br /><br />打印的信息:<br /><br /><openerp.sql_db.Cursor object at 0xb574da2c><br />1<br />{'lang': 'zh_CN', 'tz': 'Asia/Shanghai', 'uid': 1}<br /><openerp.osv.orm.product.product object at 0xb1271eac><br /><br /><br />  我想获得产品id 该怎么改呢?求大神给出方法?



  • 方法:<br />          def print_order(self, cr, uid, ids,product_id):                                                                                                                      |    print_pct [sale_order]<br /> 872        product_obj = self.pool.get('product.product')                                                                                                                  |    manual_invoice [sale_order<br /> 873        if not product_id:                                                                                                                                              |    action_view_invoice [sale_<br /> 874            raise  osv.except_osv(_('The product is not Defined!'), _('The product is not Defined!'))                                                                    |    test_no_product [sale_orde<br /> 875        product = product_obj.browse(cr, uid, product_id)                                                                                                                |    action_invoice_create [sal<br /> 876        print ""                                                                                                                                        |    action_invoice_cancel [sal<br /> 877        print cr                                                                                                                                                        |    action_invoice_end [sale_o<br /> 878        print uid                                                                                                                                                        |    action_cancel [sale_order]<br /> 879        print product_id                                                                                                                                                |    action_button_confirm [sal<br /> 880        print product_obj                                                                                                                                                |    action_wait [sale_order]<br /> 881        print product                                                                                                                                                    |    action_quotation_send [sal<br /> 882        print ""                                                                                                                                        |    action_done [sale_order]<br /> 883        return product        <br /><br />打印的信息:<br /><br /><openerp.sql_db.Cursor object at 0xb574da2c><br />1<br />{'lang': 'zh_CN', 'tz': 'Asia/Shanghai', 'uid': 1}<br /><openerp.osv.orm.product.product object at 0xb1271eac><br /><br /><br />  我想获得产品id 该怎么改呢?求大神给出方法?



  • product.id<br /><br />话说, 你的传入的参数 product_id 产品的 id 吗 ?  <br /><br />


  • 管理员

    你的print_order方法是在产品表单视图的一个按钮或者一个动作?<br /><br />[code] def print_order(self, cr, uid, ids,product_id):    [/code]<br /><br />我猜测这里的ids就是你要的产品的id。试试:<br /><br />[code]product = product_obj.browse(cr, uid, product_id) [/code]



  • 是一个按钮,



  • 修改: product = product_obj.browse(cr, uid,ids, product_id)    <br />打印信息:<br />[1]<br /><openerp.sql_db.Cursor object at 0xb1c4f6cc><br />1<br />{'lang': 'zh_CN', 'tz': 'Asia/Shanghai', 'uid': 1}<br /><openerp.osv.orm.product.product object at 0xb32ccecc><br />[browse_record(product.product, 1)]<br /><br />2014-05-22 04:59:40,054 6318 INFO odoo werkzeug: 192.168.213.1 - - [22/May/2014 04:59:40] "POST /web/dataset/call_button HTTP/1.1" 200 -<br />2014-05-22 04:59:40,160 6318 INFO odoo werkzeug: 192.168.213.1 - - [22/May/2014 04:59:40] "POST /web/menu/load_needaction HTTP/1.1" 200 -<br />2014-05-22 04:59:40,164 6318 INFO odoo werkzeug: 192.168.213.1 - - [22/May/2014 04:59:40] "POST /web/dataset/call_kw HTTP/1.1" 200 -<br /><br />[2]<br /><openerp.sql_db.Cursor object at 0xb1b1f2cc><br />1<br />{'lang': 'zh_CN', 'tz': 'Asia/Shanghai', 'uid': 1}<br /><openerp.osv.orm.product.product object at 0xb32ccecc><br />[browse_record(product.product, 2)]<br /><br />



  • [browse_record(product.product, 2)] 这样得到的是一个函数browse_record(product.product, 2) 怎样得到这个函数的返回的值呢


  • 管理员

    [quote author=yfjelley link=topic=16403.msg28065#msg28065 date=1400736819]<br />[browse_record(product.product, 2)] 这样得到的是一个函数browse_record(product.product, 2) 怎样得到这个函数的返回的值呢<br />[/quote]<br /><br />[browse_record(product.product, 2)]这个是一个browse object的列表。<br />browse object是OpenERP ORM里的一个重要的对象。例如你这里的browse_record(product.product, 2)意思就是我可以通过这个browse object来访问product.product这个model,id为2的记录。例如我们要取出这个产品的名字,可以browse_record(product.product, 2).name<br />



  • 修改:  product = product_obj.browse(cr,uid,ids, product_id)[0].name <br />打印信息:<br />[1]<br /><openerp.sql_db.Cursor object at 0xb08e950c><br />1<br />{'lang': 'zh_CN', 'tz': 'Asia/Shanghai', 'uid': 1}<br /><openerp.osv.orm.product.product object at 0xb39cf9cc><br />服务<br /><br />2014-05-22 06:47:37,748 9334 INFO odoo werkzeug: 192.168.213.1 - - [22/May/2014 06:47:37] "POST /web/dataset/call_button HTTP/1.1" 200 -<br />2014-05-22 06:47:37,830 9334 INFO odoo werkzeug: 192.168.213.1 - - [22/May/2014 06:47:37] "POST /web/menu/load_needaction HTTP/1.1" 200 -<br />2014-05-22 06:47:37,838 9334 INFO odoo werkzeug: 192.168.213.1 - - [22/May/2014 06:47:37] "POST /web/dataset/call_kw HTTP/1.1" 200 -<br /><br />[2]<br /><openerp.sql_db.Cursor object at 0xb084d06c><br />1<br />{'lang': 'zh_CN', 'tz': 'Asia/Shanghai', 'uid': 1}<br /><openerp.osv.orm.product.product object at 0xb39cf9cc><br />iphone<br /><br />但是打印信息第一个为什么是服务呢,应该是iphone呀


登录后回复
 

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