Вы можете использовать метод fields_view_get
для динамического обновления представления из кода Python (до отображения представления).Это только один пример, который я нашел в Odoo:
@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
res = super(MailThread, self).fields_view_get(
view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu
)
if view_type == 'form':
doc = etree.XML(res['arch'])
for node in doc.xpath("//field[@name='message_ids']"):
# the 'Log a note' button is employee only
options = safe_eval(node.get('options', '{}'))
is_employee = self.env.user.has_group('base.group_user')
options['display_log_button'] = is_employee
# save options on the node
node.set('options', repr(options))
res['arch'] = etree.tostring(doc, encoding='unicode')
return res
Поместите его в свою модель.Найдите поле столбца с doc.xpath
и обновите его с помощью node.set
На самом деле это то, что сказал Хуан Сальседо в своем комментарии