【发布时间】:2015-09-29 17:28:16
【问题描述】:
我需要根据搜索结果填写 many2many(product_product_ids)。例如,我在向导视图(search_test)上定义了一个搜索按钮:
<group>
<field name="quantity"/>
<field name="product_product_ids"/>
</group>
<footer>
<button name="search_test" type="object" string="Search" class="oe_highlight"/>
or
<button string="Cancell" class="oe_link" special="cancel"/>
</footer>
在向导模型中,我定义了这些字段和函数:
class sale_order_add_balerce(models.TransientModel):
_name = 'sale.order.add_balerce'
_description = 'Sale order add balerce'
_columns = {
'product_product_ids': fields.many2many('product.product', string='Products'),
'quantity' : fields.float('Quantity', default='1.0')
}
def search_test(self, cr, uid, ids, context=None):
if context is None:
context = {}
product_obj=self.pool.get('product.product')
#search process
product_ids_list = product_obj.search(cr, uid, [], context=context)
print product_ids_list
#populating many2many field
self.write(cr, uid, ids, {'product_product_ids': (6, 0, [product_ids_list])})
return {
'res_model': 'product.product',
'type':'ir.ui.view',
'context': context,
'res_id': ids[0] #open wizard again
}
排队
self.write(cr, uid, ids, {'product_product_ids': (6, 0, [product_ids_list])})
我尝试在搜索过程后更新 many2many 字段,但没有任何反应,而且我没有看到任何错误 我也尝试过这些变体:
self.write(cr, uid, ids, {'product_product_ids': (0, 0, [product_ids_list])})
self.create(cr, uid,{'product_product_ids': (6, 0, [product_ids_list])})
self.create(cr, uid, ids, {'product_product_ids': (0, 0, [product_ids_list])})
但是,我的 many2many 字段仍然没有填写(我看不到任何变化)。
有人有什么建议吗?
【问题讨论】:
标签: python xml many-to-many odoo wizard