是否可以为域模拟 "contains" 运算符? ("in" 的倒数)

Is it possible to emulate a "contains" operator for domains? (the inverse of "in")

我遇到过好几次这样的情况,我需要在域的左侧部分写一个 Many2many/One2Many 字段,在右侧部分写一个简单的记录。类似于 in 运算符,但相反。

我所做的是通过变通办法避免这种情况,但现在,我一无所获。我目前的情况如下:

如果安装 project 模块,您会看到每个 project.task 对象都可以有一个唯一的负责人(user_id,是一个 Many2one)。如果您打开任务视图,则会自动加载一个过滤器以仅查看您的任务:

<filter string="My Tasks" name="my_tasks" domain="[('user_id','=',uid)]"/>

但是,我需要的是允许将多个用户分配给同一任务。所以首先,我在 project.task:

中创建了一个 Many2many 字段
user_ids = fields.Many2many(
    comodel_name='res.users',
    string='Project Managers',
    default=lambda self: self.env.user.mapped('id')
)

一切正常,但是,现在我需要让过滤器像以前一样工作,但要使用这个字段。这是我被困住的地方,需要一个假设的运算符 contains.

<filter string="My Tasks" name="my_tasks" domain="[('user_ids','contains',uid)]"/>

有人处理过这种情况吗?有什么想法吗?

好的,我发现运算符“=”也像 'contains' 一样工作。所以实现这个问题真的很容易,因为新的过滤器必须和原来的完全一样,只是改变了字段名称:

<filter string="My Tasks" name="my_tasks" domain="[('user_ids','=',uid)]"/>

我已经在版本 10 上试过了,它很管用!

这些问题给了我提示: