Python 为什么api.depends不能在非编辑模式下与message\u follower\u id字段一起工作?如何修复它?

Python 为什么api.depends不能在非编辑模式下与message\u follower\u id字段一起工作?如何修复它?,python,python-2.7,odoo,odoo-10,odoo-view,Python,Python 2.7,Odoo,Odoo 10,Odoo View,当我在文档中有关注者并且他们不是Odoo的用户时,我想显示一条消息。因此,我创建了两个计算字段,一个用于消息,另一个用于检查消息是否应显示 类销售订单(models.Model): _继承='sale.order' @api.multi @依赖于('message\u follower\u id')) 定义计算显示警告消息(自我): partner_id=self.env['res.users'].search([])\ .mapped('partner_id')。mapped('id')) 请

当我在文档中有关注者并且他们不是Odoo的用户时,我想显示一条消息。因此,我创建了两个计算字段,一个用于消息,另一个用于检查消息是否应显示

类销售订单(models.Model):
_继承='sale.order'
@api.multi
@依赖于('message\u follower\u id'))
定义计算显示警告消息(自我):
partner_id=self.env['res.users'].search([])\
.mapped('partner_id')。mapped('id'))
请自行记录:
msg=\u(“”\n文档不包含用户跟随者。\n“”)
对于record.message\u follower\u id中的follower:
如果follower.partner\u id.id不在partner\u id中:
record.show\u warning\u msg=True
record.warning\u msg=msg
显示\u警告\u消息=字段。布尔值(
计算=''计算显示警告消息',
string='Show warning message',
)
警告\u msg=fields.Text(
计算=''计算显示警告消息',
string='Warning message',
)
但是,当表单未处于编辑模式且我添加或删除跟随者时,不会触发计算方法。因此,我必须按下“编辑”按钮和“保存”来触发该方法

我尝试在follower表的create和unlink方法上执行compute方法,但是表单视图没有刷新

是否有方法触发计算字段并刷新表单以显示消息


任何解决方法或修复方法?

添加追随者的按钮如下所示:


0
因此,我只是在按钮中添加了类
oe\u edit\u only
,并解决了问题。用户必须处于编辑模式才能看到按钮并添加或删除追随者:


0

一个可能的解决方案,我将此代码添加到表单视图中:

<field name="message_follower_ids" position="attributes">
    <attribute name="class">oe_edit_only</attribute>
</field>

仅限oe_编辑_

我认为您需要了解如何在javascript中触发它,因为问题就在这里。但有一件事你不认为如果你用seachu_read会更好吗。而不是搜索而不是映射到时间?好的,谢谢,我来看看JavaScript。是的,你可能是对的,
search\u read
可能会更快。但是
res\u users
表通常只有几条记录,使用
mapped
我可以以更方便的方式获得ID列表。@Cher如果我找到了一个更优雅的解决方案,请检查我的答案,如果您对looool感兴趣,这就是我喜欢编码的原因。不要把我学到的东西复杂化,我花了三天的时间来解决一个问题,在报告中编辑javascript,以防止标题显示在报告的第二页。解决了这个问题之后,我找到了另一个不需要5分钟代码的解决方案。谢谢你的想法