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

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

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

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

One2many字段domain实现, 并使用filter视图中的变量



  • [size=14pt]新类<br />class my_model(osv.osv):<br />    _name = "my.model"<br />    _description = 'abc'<br />  <br />    _columns = {<br />        'product_id': fields.many2one('product.product', u'产品'),<br />        'move_in': fields.many2one('stock.move', u'入库记录'),<br />        'location_id': fields.many2one('stock.location', u'在库库位'),<br />      .........................<br />}<br />my_model()<br /><br />产品类<br />class product_product(osv.Model):<br />    _inherit = 'product.product'    <br />    _columns = {<br />        'my_model': fields.one2many('my.model', 'product_id', u'my_model', domain=['&',('move_in','!=',False),('move_in.state','=','done')]),<br />    }<br />product_product()<br />[b]本站有贴子说有one2many的domain只能在py文件中实现, 不能在xml文件中实现.[/b]<br /><br />[b]视图文件不变, 现在再修改py文件如下:[/b]<br />class product_product(osv.Model):<br />    _inherit = 'product.product'<br />    _columns = {<br />        'my_field': fields.function(_get_juan, method=True, string = u'分卷', type='one2many',relation='my_model'),<br />        }<br />product_product()<br /><br /><br />    def _get_juan(self, cr, uid, ids, name, arg, context=None):<br />        res = {}<br />        jids = []<br />        obj = self.pool.get('my_model')<br /><br />        for product in self.browse(cr,uid,ids):<br />            if context.get('location', False):<br />                    location_ids = [context['location']]<br />            else:<br />                  location_ids = ........<br /><br />            args = [('product_id','=',product.id)]<br />            args += [('location_id','in',location_ids)]<br />            res[product.id] = obj.search(cr,uid,args)<br /><br />        return res[/size]



  • [size=14pt]新类<br />class my_model(osv.osv):<br />    _name = "my.model"<br />    _description = 'abc'<br />  <br />    _columns = {<br />        'product_id': fields.many2one('product.product', u'产品'),<br />        'move_in': fields.many2one('stock.move', u'入库记录'),<br />        'location_id': fields.many2one('stock.location', u'在库库位'),<br />      .........................<br />}<br />my_model()<br /><br />产品类<br />class product_product(osv.Model):<br />    _inherit = 'product.product'    <br />    _columns = {<br />        'my_model': fields.one2many('my.model', 'product_id', u'my_model', domain=['&',('move_in','!=',False),('move_in.state','=','done')]),<br />    }<br />product_product()<br />[b]本站有贴子说有one2many的domain只能在py文件中实现, 不能在xml文件中实现.[/b]<br /><br />[b]视图文件不变, 现在再修改py文件如下:[/b]<br />class product_product(osv.Model):<br />    _inherit = 'product.product'<br />    _columns = {<br />        'my_field': fields.function(_get_juan, method=True, string = u'分卷', type='one2many',relation='my_model'),<br />        }<br />product_product()<br /><br /><br />    def _get_juan(self, cr, uid, ids, name, arg, context=None):<br />        res = {}<br />        jids = []<br />        obj = self.pool.get('my_model')<br /><br />        for product in self.browse(cr,uid,ids):<br />            if context.get('location', False):<br />                    location_ids = [context['location']]<br />            else:<br />                  location_ids = ........<br /><br />            args = [('product_id','=',product.id)]<br />            args += [('location_id','in',location_ids)]<br />            res[product.id] = obj.search(cr,uid,args)<br /><br />        return res[/size]



  • 感谢分享............


登录后回复
 

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