私はこの既存のフィールドを持っています:
picking_code = fields.Selection(
related='picking_id.picking_type_id.code',
readonly=True,
)
そして、それを継承し、related
パラメータを削除し、compute
条件に応じて値を設定するためにパラメータを追加したいと思います。
私の試み:
@api.depends('picking_id', 'picking_id.picking_type_id',
'picking_id.picking_type_id.code',
'move_id', 'move_id.picking_type_id',
'move_id.picking_type_id.code')
def _compute_picking_code(self):
_logger.critical('NEVER EXECUTES THIS' * 80)
for line in self:
if line.picking_id:
line.picking_code = line.picking_id.picking_type_id.code
else:
line.picking_code = line.move_id.picking_type_id.code
picking_code = fields.Selection(
related=False,
compute='_compute_picking_code',
)
問題は、computeメソッドが実行されず、次のエラーが発生することです。これは、computeメソッドが実行されない場合、選択値がフィールドに設定されないため、理にかなっています。
AssertionError:選択なしのフィールドstock.move.line.picking_code ----
解決しました。誰かが主題に興味を持っている場合、それはSelection
フィールドなので、related
パラメーターを削除する場合は、パラメーターのタプルのリストを再度指定する必要がありselection
ます。
picking_code = fields.Selection(
selection=[
('incoming', 'Receipt'),
('outgoing', 'Delivery'),
('internal', 'Internal Transfer'),
],
compute='_compute_picking_code',
related=False,
readonly=True,
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加