在 Odoo 17 中,當使用?related
?字段時,直接在?fields.Selection
?中指定選擇列表會被忽略(因為選擇項會從關聯字段繼承)。
wtd_fuwlx = fields.Selection('服務類型' , related='wtd_id.fuwlx', store=True)
遇到了一個警告,提示在Odoo 17中,由于字段是關聯字段(related field),所以selection屬性將被忽略。 在Odoo中,當我們使用`related`屬性時,該字段會繼承其所關聯字段的所有屬性(包括selection列表)。因此,在定義關聯字段時,我們不需要(也不應該)重復指定`selection`屬性,因為它會被忽略。
'服務類型'
?作為?Selection
?的第一個參數是無效的(它應該是?[(value, label)]
?列表或可調用方法)由于使用了?
related
,選擇項會自動從?wtd_id.fuwlx
?字段繼承,無需重復定義
正確修改方式
直接移除無效的選擇列表參數,保留?related
?和?string
(如需設置字段標簽):
wtd_fuwlx = fields.Selection(related='wtd_id.fuwlx',string='服務類型' , store=True)
關鍵說明:
related
?字段自動繼承屬性
關聯字段會從源字段(wtd_id.fuwlx
)繼承?selection
?列表、字段類型等屬性,無需重復聲明。添加?
string
?參數(可選)
如果你想在界面上自定義字段顯示標簽(默認使用源字段的標簽),添加?string='服務類型'
。store=True
?的作用
這會使字段值存儲到數據庫中(默認?related
?字段不存儲),只有確實需要時才保留(例如用于搜索/分組)。修改后重新升級模塊,警告消失。
注意:如果不需要自定義標簽,可省略?
string
?參數。字段行為將完全與源字段?wtd_id.fuwlx
?保持一致。