我正在尝试将模块从odoo 10迁移到odoo 12,该模块包含具有ir.default模块类型的视图。但是它显示了这个错误:
我不知道如何纠正它。有人可以帮我吗?
odoo.tools.convert.ParseError: "ERREUR: une valeur NULL viole la contrainte NOT NULL de la colonne « field_id »
DETAIL: La ligne en échec contient (9, null, null, null, null, null, 1, 2019-04-09 14:57:31.803622, 1, 2019-04-09 14:57:31.803622)
" while parsing /PycharmProjects/Odoo12/bank_reconciliation/views/account_selected_move_line.xml:32, near
<record model="ir.default" id="action_selected_account_move_line_values">
<field name="name">Sélectionner les écritures</field>
<field name="field_id"/>
<field name="key">action</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_selected_account_move_line'))"/>
<field name="binding_model_id" ref="model_account_move_line"/>
<field name="object" eval="True"/>
</record>
答案 0 :(得分:1)
您的xml记录中没有field_id
的值。始终为模型字段设置默认值。因此,获取字段xml /外部ID并进行设置。字段的外部ID生成:
module.field_model__fieldname
例如,对于模型sale.order
,字段name
首先在模块sale
中实现,其字段为sale.field_sale_order__name
。
编辑:您的xml记录对于模型ir.default
来说是错误的,看起来像旧模型ir.values
。我发现了一个通过xml创建ir.default
记录的示例:
<function id="purchase_default_set"
model="ir.default" name="set"
eval="('purchase.requisition', 'warehouse_id', ref('stock.warehouse0'))"/>
此示例来自模块purchase_requistion
,并在字段purchase.requisition
上为模型ẁarehouse_id
创建一个默认值,其默认值为“外部ID'stock.warehouse0'后面的记录ID”安装应用程序库存时的默认仓库。
您只需将其调整为所需的默认值即可。