域在搜索视图中无法正常工作

时间:2011-10-25 05:46:56

标签: python openerp

在商机中我有两类用户水平和垂直。当垂直用户登录时,他/她的名字出现在垂直字段中,但当一个hortizontal用户登录他/她的名字时也出现在垂直用户字段中而不是水平用户字段。我已在搜索视图中应用域,如下所示 -

for Horizo​​ntal user:

<field name="user_id" string ="Salesman Horizontal" domain = "
    [('tri_salesteam.s_horizontal','=',True),'|','|','|','|','|','|','|','|',
    ('parent_id.parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id.parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id.parent_id.parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id','=',uid),('parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id','=',uid),('parent_id.parent_id','=',uid),
    ('id','in',[uid])]" invisible="1">
垂直用户

<field name="sales_vertical" domain = "
    [('tri_salesteam.s_horizontal','!=',True),'|','|','|','|','|','|','|','|',
    ('parent_id.parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id.parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id.parent_id.parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id','=',uid),('parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id.parent_id','=',uid),
    ('parent_id.parent_id.parent_id','=',uid),('id','in',[uid])]" invisible="1">

2 个答案:

答案 0 :(得分:0)

我不确定你在问什么,但这里有一个调试搜索条件的提示。在服务器代码的orm._search()方法中放置断点或调试语句。在版本6.0.3中,它位于server/bin/osv/orm.py的第4029行,如下所示:

    cr.execute('SELECT "%s".id FROM ' % self._table + from_clause + where_str + order_by + limit_str + offset_str, where_clause_params)

如果转储where_str的内容,则可以看到如何解释约束。

答案 1 :(得分:0)

尝试在域中使用'parent_of'和'child_of'而不是使用这么多'|'搜索parent_id的条件。