inheritance - 覆盖 Odoo10 中的字段的问题(继承)
问题描述
我已经下载了一个继承 res.partner 的 Odoo10 应用程序: 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)
意见/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>
此外,当我将 over_credit 字段中的 default=True 更改为 default=False 时,在我创建新合作伙伴时它不会更改。
你能帮我发现我做错了什么吗?我从 res.partner 继承,当我尝试应用程序时,一切似乎运行正常。但是当我添加我的更改时,它不能按我的意愿工作。也许我错过了 Odoo 中的一些配置?
谢谢你。
解决方案
首先,模型声明中缺少冒号 (:) 和 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
?
推荐阅读
- algorithm - 竞争性编程算法袜子绘图概率问题
- python - 收到错误“mysql.connector.errors.DatabaseError: 2005 (HY000): Unknown MySQL server host”
- encryption - 什么会导致 OpenSSL 损坏 TAR 文件?
- matrix - 有没有办法使用非方阵使用 Google Sheets 求解线性方程组?
- php - Laravel如何对相关表中的值求和并将值添加到对象并按总和值排序?
- assembly - 空的流行音乐怎么办?
- google-cloud-platform - 更新 GCP Composer 和 Airflow 映像失败
- php - 在数据库中查找最近的经度和纬度?
- ruby-on-rails - Rails - 没有路线匹配 [POST] "/page/new"
- javascript - (Discord.js)如何检测用户何时开始/停止在特定语音通道中说话