在商机中我有两类用户水平和垂直。当垂直用户登录时,他/她的名字出现在垂直字段中,但当一个hortizontal用户登录他/她的名字时也出现在垂直用户字段中而不是水平用户字段。我已在搜索视图中应用域,如下所示 -
for Horizontal 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">
答案 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的条件。