Проблемы с перезаписью поля в Odoo10 (наследование) - PullRequest
0 голосов
/ 24 апреля 2019

Я скачал приложение для Odoo10, которое наследует res.partner: https://www.odoo.com/apps/modules/10.0/partner_credit_limit/

После установки этого приложения в моем Odoo я вижу, что поле over_credit (res.partner) перезаписывается и по умолчанию изменяется на True. Это нормально. Проблема в том, что когда я пытаюсь перезаписать другое поле (credit_limit, из res_partner), оно не меняется. Затем я добавил новое поле (x_riesgo_subjetivo), но оно появляется в форме, но без выбора (это поле выбора). Он уже создан в базе данных как x_riesgo_subjetivo.

Код:

models / partner.py (объявлено в папке init для моделей)

from odoo import fields, models
class ResPartner(models.Model)
_inherit = 'res.partner'
over_credit = fields.Boolean('Allow Over Credit? modified', default=True)
credit_limit = fields.Float(digits=0, required=True, default=1000.0, help="Help Text")
x_riesgo_subjetivo = fields.Selection([('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')], string='Degree of trust you have in this debtor', default='normal', company_dependent=True)

views / partner_view.xml

<?xml version="1.0" encoding="utf-8"?>
<odoo>

    <record id="view_category_property_form" model="ir.ui.view">
        <field name="name">partner.over.credit.limit.form.inherit</field>
        <field name="model">res.partner</field>
        <field name="type">form</field>
        <field name="inherit_id" ref="account.view_partner_property_form"/>
        <field name="arch" type="xml">
            <field name="credit" position="after">
                <field name="credit_limit"/>
                <field name="over_credit"/>
                <field name="x_riesgo_subjetivo"/>
            </field>
        </field>
    </record>
</odoo>

Кроме того, когда я изменяю значение по умолчанию = True в поле over_credit на значение по умолчанию = False, оно не изменяется при создании нового партнера.

Не могли бы вы помочь мне понять, что я делаю не так? Я наследую от res.partner, и когда я пробую приложение, кажется, все работает нормально. Но когда я добавляю свои изменения, это не работает, как я хочу. Возможно, мне не хватает какой-то конфигурации в Odoo?

Спасибо.

1 Ответ

0 голосов
/ 24 апреля 2019

Во-первых, в объявлении модели отсутствуют двоеточие (:) и отсутствуют необходимые для Python отступы:

from odoo import fields, models

class ResPartner(models.Model):
  _inherit = 'res.partner'
  over_credit = fields.Boolean('Allow Over Credit? modified', default=True)
  credit_limit = fields.Float(digits=0, required=True, default=1000.0, help="Help Text")
  x_riesgo_subjetivo = fields.Selection([('good', 'Good Debtor'), ('normal', 'Normal Debtor'), ('bad', 'Bad Debtor')], string='Degree of trust you have in this debtor', default='normal', company_dependent=True)

С другой стороны, я тестирую ваш код на v12и поле credit больше не существует, поэтому я использовал vat, и оно работает как шарм.

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="view_category_property_form" model="ir.ui.view">
        <field name="name">partner.over.credit.limit.form.inherit</field>
        <field name="model">res.partner</field>
        <field name="type">form</field>
        <field name="inherit_id" ref="account.view_partner_property_form"/>
        <field name="arch" type="xml">
            <field name="vat" position="after">
                <field name="credit_limit"/>
                <field name="over_credit"/>
                <field name="x_riesgo_subjetivo"/>
            </field>
        </field>
    </record>
</odoo>

Я могу загрузить минимальный рабочий модуль для v12 в github, если вам нужно, чтобы я.

Кстати, у вас есть файлы с именем __init__.py, содержащие

from . import models

и models/__init__.py, содержащие

from . import partner

?

modified res.partner form screenshot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...