Я хочу сделать что-то, чего я никогда раньше не делал, и на самом деле нет идей о том, как его решить.Odoo: Inherit: Заменить поле условно
Что я хочу сделать: Когда флажок установлен, замените поле «имя» другим полем (выбором), но напишите значение в исходное поле «имя».
Проблема здесь, когда я делаю Наследовать с заменой, как это: (. В этом коде, поле «realman» является флажок)
<xpath expr="//field[@name='name']" position="replace">
<field name="name" attrs="{'invisible': [('realman', '=', True)]}"/>
<field name="workcenter_naam" attrs="{'invisible': [('realman', '=', False)]}" required="1"/>
</xpath>
Это будет выглядеть правильно в передней конец, но когда я выбираю значение для поля «workcenter_naam» и нажмите кнопку сохранить, он дает эту ошибку:
The following fields are invalid: Name
Если изменить имя поля «workcenter_naam» на «имя» в Пыть hon, он ВСЕГДА будет использовать это поле (вместо исходного поля имени), независимо от этого флажка. Как это:
workcenter_naam = fields.Selection(_workcentername_selection, string="Workcenter naam")
Вместо:
name = fields.Selection(_workcentername_selection, string="Workcenter naam")
Это то, что он выглядит на переднем конце:
Как это выглядит на переднем конце, как это должно , Значение, выбранное в унаследованном виде, например, «Bakkerij», просто должно быть помещено в поле имени.
Есть ли у кого-нибудь идеи о том, как решить эту проблему? Если что-то неясно, сообщите мне.
Вы правы. Но так как он дает эту ошибку, я знаю, что значение для «workcenter_naam» не передается в поле «имя». Я хочу, чтобы мое поле перезаписывало поле «имя», ТОЛЬКО если realman = true. – RobbeM
ОК, тогда вы можете добавить функцию вычисления, которая хранит значение 'workcenter_naam' в поле' name' – ChesuCR
Я решил его сейчас. Очень просто ... @ api.onchange ('workcenter_naam') И в функции: self.name = self.workcenter_naam – RobbeM