class myModel(models.Model):
_name = 'my.model'
state = fields.Selection(selection=_STATES, string='Status', index=True, track_visibility='onchange',required=True, copy=False, default='draft')
my_model_line = fields.One2many('my.model.line', 'model_id')
другая модель:
class MyModelLine(models.Model):
_name = 'my.model.line'
name = fields.Char(string='Name')
quantity = fields.Integer(string='Quantity', required=True, default=1)
remarks = fields.Text(string='Description')
my_model_id = fields.Many2one('my.model', 'My Model')
my_model.xml
<field name="my_model_line" attrs="{'readonly': [('state','not in', ('draft'))]}">
<tree string="My model Lines" editable="bottom">
<field name="name"/>
<field name="quantity"/>
<field name="remarks"/>
<button name="open_new_view" type="object" string="Add" class="oe_highlight"/>
<button icon="terp-face-plain" name="test" type="object" string="Add" class="oe_highlight"/>
</tree>
</field>
Я хочу скрыть my.model.line moel поле примечаний и поле добавления кнопки в зависимости от статуса my.model . Например, скрыть поля, если статус моей модели одобрен.
Насколько я понимаю, я не могу использовать невидимый атрибут с доменом в моем my_model.xml, потому что my.model.line не имеет поля состояния. Может, есть какие-то решения для этого?
Я думал создать поле статуса в объекте my.model.line и изменить его статус в зависимости от статуса my.model.
Также я пробовал вот так:
<field name="remarks" attrs="{'invisible': "[('my_model_id .state', '=', 'approved')]"}"/>
Но тут возникла ошибка: «Неизвестное поле my_model_id.state в домене»