我正在尝试将模块从odoo 10迁移到包含具有ir.default模块类型的视图的odoo 12。但它告诉我这个错误:
我不知道如何纠正它。有人可以帮帮我吗?
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>
你的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”(这是安装应用库存时的默认仓库)。
您只需将其调整为您想要的默认值即可。