我曾经多次遇到过这样的情况:我需要在域的左侧部分编写Many2many
/ One2Many
字段,在右侧部分编写简单记录。与in
运营商一样,但反过来。
我所做的是通过变通方法来避免这种情况,但现在,我什么也没想出来。我目前的情况如下:
如果您安装了project
模块,您会发现每个project.task
对象都可以具有唯一的责任(user_id
,是Many2one
)。如果您打开任务视图,则会自动加载过滤器以仅查看您的任务:
<filter string="My Tasks" name="my_tasks" domain="[('user_id','=',uid)]"/>
但是,我需要的是允许将多个用户分配到同一个任务。首先,我在Many2many
中创建了一个project.task
字段:
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)]"/>
有没有人处理过这种情况?有什么想法吗?
答案 0 :(得分:0)
好的,我已经意识到运算符'='就好像它也是'包含'一样。因此,实现此问题非常容易,因为新过滤器必须与现在完全相同,但更改字段名称:
<filter string="My Tasks" name="my_tasks" domain="[('user_ids','=',uid)]"/>
我已经在第10版上尝试了这个并且它正在运行!
这些问题给了我提示: