ir.cron: «ОШИБКА: недопустимо, NULL, фиолетовый, в отличие от NOT NULL, де ла Колонна« model_id » - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь установить модуль в odoo 12, который содержит представление с типом модуля ir.cron. но это показывает мне эту ошибку:
Я не знаю, как это исправить. Кто-нибудь может мне помочь, пожалуйста?

odoo.tools.convert.ParseError: "ERREUR:  une valeur NULL viole la contrainte NOT NULL de la colonne « model_id »
DETAIL:  La ligne en échec contient (434, Annuler la remise mensuelle du client, ir.actions.server, null, null, action, 1, 2019-03-13 14:48:25.710923, 1, 2019-03-13 14:48:25.710923, ir_cron, object_write, 5, null, null, # Available variables:
#  - env: Odoo Environment on which the a..., null, null, null, null, null, null, null, days, specific, null, user_id)
" while parsing /home/*/PycharmProjects/Odoo12/*/sale_discount_total/views/cron.xml:5, near
<record model="ir.cron" id="deactivate_partner_discount_cron">
            <field name="name">Annuler la remise mensuelle du client</field>
            <field name="interval_number">1</field>
            <field name="interval_type">months</field>
            <field name="numbercall">-1</field>
            <field eval="False" name="doall"/>
            <field eval="'res.partner'" name="model"/>
            <field eval="'deactivate_partner_discount'" name="function"/>
            <field eval="'()'" name="args"/>
        </record>

Ответы [ 2 ]

1 голос
/ 13 марта 2019

ОШИБКА: недопустимо, NULL, фиолетовый, напротив, не равен NULL de la colonne «model_id»

Грубо говоря, эта ошибка говорит:

ОШИБКА: NULLзначение нарушает ограничение NOT NULL для столбца model_id

Если вы посмотрите на код ядра для существующего примера записи ir.cron, то вы увидите узел XML с именем model_id, который требуется для создания записи cron.

Вы используете:

<field eval="'res.partner'" name="model"/>

Но в Odoo 12 вместо этого ожидается:

<field name="model_id" ref="model_res_partner"/>

Я не видел этого нигде в документации по Odoo, поэтому вместо этого я буду ссылаться на некоторый исходный код , чтобы вы могли сравнить его с вашей записью.

1 голос
/ 13 марта 2019

Проблема в строке <field eval="'res.partner'" name="model"/>, фактическое имя поля - model_id.Вы должны установить поле следующим образом

<field name="model_id" ref="model_res_partner"/>

Поскольку model_id является отношением Many2one с ir.model, вы можете использовать ref с идентификатором xml модели, для res.partner идентификатором xml модели являетсяmodel_res_partner.

...