问题描述
假设我有一棵可编辑的树
<tree editable="top">
<field name="date">
<field name="value">
</tree>
现在假设我想让用户编辑最近3个日期的值,但其他日期应保持只读状态。
我该怎么做?
解决方法
好吧,您可以在模型中添加一个布尔字段。这将是一个计算字段。根据该字段,您可以按如下方式应用只读属性:
class TheModel(models.Model):
_name = 'The.Model'
old_dated = fields.Boolean(compute='_old_dated_rec')
date = fields.Date()
value = fields.Integer()
@api.model
def _old_dated_rec(self):
"""define the condition of old dated records which could be as"""
recent_rec = self.search([],order='date desc',limit=3)
old_rec = self.search([('id','not in',recent_rec._ids)])
old_rec.write({'old_dated': True})
然后您可以应用调度程序来每天运行此类方法
<field name="old_dated" invisible="1" />
<field name="date" attrs="{'readonly':[('the_boolen_field','=',True)]}"/>
通过这种方式,compute方法将更新布尔字段。