ОШИБКА: недопустимо, NULL, фиолетовый, в отличие от NOT NULL, в виде «field_id» - PullRequest
1 голос
/ 09 апреля 2019

Я пытаюсь перенести модуль из 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>

1 Ответ

1 голос
/ 09 апреля 2019

В вашей xml-записи нет значения для field_id.Значения по умолчанию всегда устанавливаются для полей модели.Так что получите поле xml / external ID и установите его.Создаются внешние идентификаторы полей:

module.field_model__fieldname

Так, например, для модели sale.order поле name, которое впервые реализовано в модуле sale, это sale.field_sale_order__name.

Изменить: Ваша XML-запись совершенно не подходит для модели ir.default, похоже, старая модель ir.values.Я нашел только один пример создания ir.default записей по xml:

<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' "(который является хранилищем по умолчанию при установке приложения.

Вам просто нужно адаптировать его к желаемому значению по умолчанию.

...