【发布时间】:2020-09-30 15:14:34
【问题描述】:
https://www.odoo.com/forum/help-1/question/12-0-enable-features-in-the-res-config-settings-149566
我在上面的页面中创建了Alexander提到的以下设置数据文件:
res_config_data.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="my_config_settings" model="res.config.settings">
<field name="company_id" ref="base.main_company"/>
<field name="group_multi_currency" eval="True"/>
<field name="group_product_variant" eval="True"/>
<field name="group_stock_multi_warehouses" eval="True"/>
<field name="group_stock_multi_locations" eval="True"/>
<!-- Delivery Packages -->
<field name="group_stock_tracking_lot" eval="True" />
<field name="module_stock_picking_batch" eval="True" />
<!-- Display Lots & Serial Numbers: Lots & Serial numbers will appear on the delivery slip -->
<field name="group_lot_on_delivery_slip" eval="True" />
<!-- Multi-Step Routes: Use your own routes and putaway strategies -->
<field name="group_stock_adv_location" eval="True" />
<field name="po_order_approval" eval="True" />
<!-- Quantities billed by vendors -->
<field name="default_purchase_method">purchase</field>
<field name="multi_sales_price" eval="True" />
<!-- Multiple prices per product -->
<field name="multi_sales_price_method">percentage</field>
<field name="group_analytic_tags" eval="True" />
<field name="group_analytic_accounting" eval="True" />
<!-- Set specific billing and shipping addresses -->
<field name="group_sale_delivery_address" eval="True" />
<!-- Consignment -->
<field name="group_stock_tracking_owner" eval="True" />
<!-- Prepayment -->
<field name="prepayment_account_id" ref="my_chart_of_account.my_account_prepayments" />
<!-- Multi-company-->
<field name="group_multi_company" eval="False" />
</record>
<function model="res.config.settings" name="execute">
<value model="res.config.settings"
search="[('id', '=', ref('my_config_settings'))]"/>
</function>
</odoo>
__manifest__.py
'data': [
'data/res_config_data.xml',
],
如果我只应用一次它就可以工作。但是当我尝试重新安装此设置模块时,它将无法正常工作。
它以某种方式无法识别受支持的字段。
2020-06-11 02:26:48,117 52288 WARNING odoo_dev odoo.models: res.config.settings.create() with unknown fields: company_id, default_purchase_method, group_analytic_accounting, group_analytic_tags, group_lot_on_delivery_slip, group_multi_company, group_multi_currency, group_product_variant, group_sale_delivery_address, group_stock_adv_location, group_stock_multi_locations, group_stock_multi_warehouses, group_stock_tracking_lot, group_stock_tracking_owner, module_stock_picking_batch, multi_sales_price, multi_sales_price_method, po_order_approval, prepayment_account_id
Odoo 丢弃了这些无法识别的字段并将普通对象插入 DB
2020-06-11 02:26:48,118 52288 ERROR odoo_dev odoo.sql_db: bad query: b'INSERT INTO "res_config_settings" ("id", "create_uid", "create_date", "write_uid", "write_date") VALUES (nextval(\'res_config_settings_id_seq\'), 1, (now() at time zone \'UTC\'), 1, (now() at time zone \'UTC\')) RETURNING id'
ERROR: null value in column "company_id" violates not-null constraint
DETAIL: Failing row contains (10, 1, 2020-06-11 02:26:47.302998, 1, 2020-06-11 02:26:47.302998, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null).
psycopg2.IntegrityError: null value in column "company_id" violates not-null constraint
DETAIL: Failing row contains (10, 1, 2020-06-11 02:26:47.302998, 1, 2020-06-11 02:26:47.302998, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null).
当我使用全新的 Odoo 数据库安装此设置模块时,我进入常规设置页面,我可以看到设置已安装。但是当我检查res.config.settings 和ir.config_parameter 表时,我没有看到存储的任何设置记录。我想了解这个设置数据文件是如何进行并存储在哪里的。
【问题讨论】: