openerp中的动态域过滤器

时间:2014-05-09 08:12:13

标签: openerp

我必须根据属性组过滤销售订单行上的属性。 我想在销售订单行中选择一个组,然后在字段中,property_ids应显示所选特定组的属性链接。

我在sale_stock.py

中添加了一个属性组列表
    'group_id': fields.many2one('mrp.property.group', 'Property Group'),
    'property_ids': fields.many2many('mrp.property', 'sale_order_line_property_rel', 'order_id', 'property_id', 'Properties', readonly=True, states={'draft': [('readonly', False)]}),

我写了一个onchange函数

    def on_change_group(self, cr, uid, ids, group_id):
    v = {}
    list_data = []
    if group_id:
        group_property_ids = self.pool.get('mrp.property').search(cr, uid, [('group_id', '=', group_id)])
        for record in self.pool.get('mrp.property').browse(cr, uid, group_property_ids):
            list_data.append({'property_id': record.id})
        v['property_ids'] = list_data
        return {'value':v}

sale_stock_view.xml

    <field name="group_id" widget="selection" on_change="on_change_group(group_id)" />
                   <field name="property_ids" widget="many2many_tags"
                        groups="sale.group_mrp_properties"/>

此代码不会出现任何错误,但属性字段中没有发生过滤器

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

尝试使用域

,而不是使用onchange
<field name="property_ids" widget="many2many_tags" domain="[('group_id','=',group_id)]" groups="sale.group_mrp_properties"/>
相关问题