0

在 Opportunity 中,我有 2 类用户水平和垂直。当垂直用户登录时,他/她的名字出现在垂直字段中,但是当水平用户登录时,他/她的名字也出现在垂直用户字段而不是水平用户字段中.我在搜索视图中应用了域,如下所示-

对于水平用户:

<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">
4

2 回答 2

0

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

于 2011-11-29T13:41:22.713 回答
0

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

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

如果您转储 的内容where_str,那么您可以看到您的约束是如何被解释的。

于 2011-10-31T17:17:19.263 回答