对于登录用户,Odoo记录的用户数据不更新

对于登录用户,Odoo记录的用户数据不更新,odoo,odoo-11,Odoo,Odoo 11,请告诉我在Odoo 11中需要一些自定义规则配置的帮助 目前,我正在制定一项规则,只允许用户访问特定的产品类别,因为我有许多字段指定这些类别: product\u category\u id=fields.Many2many('product.category')) 以下是仅允许访问该类别的规则: product.template.category.users [('categ\u id','child\u of',user.product\u category\u id.id)] 规则很

请告诉我在Odoo 11中需要一些自定义规则配置的帮助

目前,我正在制定一项规则,只允许用户访问特定的产品类别,因为我有许多字段指定这些类别:

product\u category\u id=fields.Many2many('product.category'))
以下是仅允许访问该类别的规则:


product.template.category.users
[('categ\u id','child\u of',user.product\u category\u id.id)]
规则很好,但我有一个问题:

  • 使用具有该规则的用户“A”登录
  • 使用用户“B”登录另一个sesion并更新用户“A” 将新类别添加到“类别”字段
  • 返回用户“A”,规则不显示添加的新类别,并且重新加载页面不起作用
当我更改当前公司或重新加载Odoo服务时,更改仅适用于“A”用户

我认为这必须是用户在登录时存储数据的一种方式,可能是更新数据并允许规则从“用户”读取数据的一种方式。我需要对用户所做的更改实时应用于连接的用户,而无需更改当前公司或重新加载Odoo服务


感谢您的帮助。

这很奇怪,它应该可以工作,但只有在更改当前公司或重新启动Odoo服务器后才能工作

您可以在空白数据库和/或加载了演示数据的新数据库上尝试修改吗?如果可能的话,最好在完全不同的服务器上进行测试,看看问题是否存在

也许您也可以尝试修改
force\u域
,如下所示:

['|', ('categ_id', 'in', user.product_category_ids.ids), ('categ_id', 'child_of', user.product_category_ids.ids)]

如果有人有相同的问题,每次我在用户的product categories字段中进行更改时,我都会使用此函数来解决

self.env['ir.rule'].clear_cache()

该代码清除缓存中的规则,以便规则应用新域。

添加
self.env['ir.rule']。清除缓存()
到模型的
create()
write()
方法中

听起来好像奥多正在缓存这些信息。我想知道,您是否有任何选项来更改缓存参数?也许要彻底清除缓存?