想实现一个根据产品作为BOM的原料而生成的所有产品列表的查询
-
mrshelly的wizard解法很有启发,感谢啊。我用function field的fnct_search实现了相同的功能。参见附件
想把mrshelly的wizard转成osv_memory的,想不出解法,哪位兄弟能提供思路,先谢了。 -
人来疯,再来一个解法,直接覆写search方法:
<br />from osv import osv, fields<br /><br />class product_product(osv.osv):<br /><br /> _inherit = 'product.product'<br /><br /> def search(self, cr, uid, args=None, offset=0, limit=None, order=None,<br /> context=None, count=False):<br /> if context is None:<br /> context = {}<br /><br /> if context.get('related_product') and context.get('active_ids'):<br /> bom_obj = self.pool.get('mrp.bom')<br /> product_bom = bom_obj.search(cr,uid, [('product_id', 'in', context['active_ids'])])<br /> parent_bom = [bom.bom_id.id for bom in<br /> bom_obj.browse(cr,uid, product_bom) if bom.bom_id.id]<br /> rel_ids = [bom.product_id.id for bom in bom_obj.browse(cr, uid, parent_bom)]<br /> args.append(('id', 'in', rel_ids))<br /> return super(product_product, self).search(cr,uid,args,offset,limit,<br /> order,context=context, count=count)<br /><br /> return super(product_product, self).search(cr,uid,args,offset,limit,<br /> order,context=context, count=count)<br />product_product()
``` <?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<act_window name="Related Products"
context="{'related_product':1}"
res_model="product.product"
src_model="product.product"
view_mode="tree,form"
key2="client_action_multi"
id="action_related_products2"/>
</data>
</openerp>
``` -
[quote author=digitalsatori link=topic=2059.msg6401#msg6401 date=1276075829]
mrshelly的wizard解法很有启发,感谢啊。我用function field的fnct_search实现了相同的功能。参见附件
想把mrshelly的wizard转成osv_memory的,想不出解法,哪位兄弟能提供思路,先谢了。
[/quote]
这个代码挺好的,谁能够详细解释下么,
特别是context['active_ids']
这个怎么使用的问题
不胜感激啊,新手需要指点
mrshelly的指点:tree view 中, 选中记录的 id 值会保存到 context['active_ids'] 中。 -
mark