Odoo:限制可编辑树上的可编辑行
Odoo : limit editable rows on editable tree
假设我有一棵可编辑的树
<tree editable="top">
<field name="date">
<field name="value">
</tree>
现在假设我想让用户编辑最近 3 个日期的值,但其他日期应保持只读状态。
我该怎么做?
好吧,您可以向模型中添加一个布尔字段。这将是一个计算字段。基于该字段,您可以按如下方式应用 read-only 属性:
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)]}"/>
以这种方式,计算方法将更新布尔字段。
假设我有一棵可编辑的树
<tree editable="top">
<field name="date">
<field name="value">
</tree>
现在假设我想让用户编辑最近 3 个日期的值,但其他日期应保持只读状态。
我该怎么做?
好吧,您可以向模型中添加一个布尔字段。这将是一个计算字段。基于该字段,您可以按如下方式应用 read-only 属性:
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)]}"/>
以这种方式,计算方法将更新布尔字段。