【问题标题】:Use a field in inherited model on odoo在odoo上使用继承模型中的字段
【发布时间】:2019-02-20 15:11:05
【问题描述】:

这是一个非常简单的问题。我想使用继承模型中的字段,这是我的 balance.py

from odoo import models, fields, api

class Balance_res_partner(models.Model):
    _inherit = 'res.partner'

和 balance.xml

<?xml version="1.0"?>
<odoo>
<record id="balance_res_partner_form_view" model="ir.ui.view">
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="priority" eval="3"/>
        <field name="model">res.partner</field>
        <field name="arch" type="xml">
            <button name="toggle_active" position="before">
                <button class="oe_stat_button" type="action" name="%(account.action_account_payments)d"
                            attrs="{'invisible': [('customer', '=', False)]}"
                            icon="fa-usd">
                            <field string="Balance" name="credit" widget="statinfo"/>
                </button>
            </button>
        </field>
        </record>
    </odoo>

如您所见,我在 balance.py 中没有任何“信用”字段,因此服务器无法运行。我想做的技巧是使用 res.partner 中的“credit”字段,并在该按钮值中显示它。

需要帮助。提前谢谢...

【问题讨论】:

    标签: python odoo


    【解决方案1】:

    如果您想继承 res.partner 的字段,您必须根据 _inherit

    更改 _name

    还有一个问题,您想对该字段做什么?

    已编辑:

    关于如何显示信用,我对代码做了一点改动:

    balance.py

    # -*- encoding: utf-8 -*-
    
    from odoo import models, fields, api
    
    
    class ProductLot(models.Model):
        _inherit = 'res.partner'
    
        credit_2 = fields.Char(
            string='Balance',
            compute='_compute_credit_2',
        )
    
        @api.multi
        def _compute_credit_2(self):
            for record_id in self:
                record_id.credit_2 = str(record_id.credit)
    

    还有balance.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <odoo>
        <data>
            <record id="balance_res_partner_form_view" model="ir.ui.view">
                <field name="name">balance.res.partner.form.view</field>
                <field name="model">res.partner</field>
                <field name="priority" eval="3"/>
                <field name="inherit_id" ref="base.view_partner_form"/>
                <field name="arch" type="xml">
                    <xpath expr="//button[@name='toggle_active']" position="after">
                        <button type="action"
                                name="%(account.action_account_payments)d"
                                attrs="{'invisible': [('customer', '=', False)]}"
                                class="oe_stat_button"
                                icon="fa-usd">
                            <field name="credit_2" widget="statinfo"/>
                        </button>
                    </xpath>
                </field>
            </record>
        </data>
    </odoo>
    

    对我来说,这很完美。

    如果您使用信用字段,按钮文本就像 0,0& nbsp;€,这就是我使用另一个字段的原因。

    问候

    【讨论】:

    • 对不起,代码被编辑了,是_inherit。我想制作一个按钮,例如联系表格中的“销售计数”按钮。当您单击它时,它会将您重定向到付款模式,实际上我做了这部分。重定向没问题,但我想将客户的信用视为一串新的余额按钮。
    猜你喜欢
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2020-11-04
    • 2018-07-14
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多