视图定义无效 - Odoo v9社区

时间:2016-10-18 22:14:38

标签: python openerp odoo-9 qweb

我设法找到一种方法让产品价格在stock.picking,但现在我有一个查看错误。

这是我的模特:

from openerp import models, fields, api
import openerp.addons.decimal_precision as dp 

class StockPicking(models.Model):
    _inherit = 'stock.picking'

    product_id = fields.Many2one("product.product", "Product")
    price_unity = fields.Float(string="Precio", store=True, readonly=True, related="product_id.lst_price")

现在,我视图中的违规代码:

<record id="view_stock_picking_form" model="ir.ui.view">
    <field name="name">Stock Picking Price Form</field>
    <field name="model">stock.picking</field>
    <field name="inherit_id" ref="stock.view_picking_form"/>
    <field name="arch" type="xml">
            <xpath expr="//page/field[@name='pack_operation_product_ids']/tree/field[@name='qty_done']" position="after">
                <field name="price_unity"/>
            </xpath>
    </field>
</record>

它说Error details: Field price_unity does not exist这怎么可能?

在树视图中,它不会抛出此错误:

<record id="view_stock_picking_tree" model="ir.ui.view">
    <field name="name">Stock Picking Price Tree</field>
    <field name="model">stock.picking</field>
    <field name="inherit_id" ref="stock.vpicktree"/>
    <field name="arch" type="xml">
        <field name="state" position="before">
            <field name="price_unity"/>
        </field>
    </field> 
</record>

那么,在表单视图中我怎么不能声明它'

我错过了什么吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

您正在 pack_operation_product_ids 字段中的视图中添加 price_unity 字段。

pack_operation_product_ids 是具有 stock_pack_operation 对象的One2many关系类型。

因此我们需要在 stock_pack_operation 对象中添加/注册 price_unity 字段。

尝试使用以下代码:

class StockPackOperation(models.Model):
    _inherit = 'stock.pack.operation'

    price_unity = fields.Float(string="Precio", store=True, readonly=True, related="product_id.lst_price")

    #product_id is already in table so no need to add/register

然后重新启动Odoo服务器并升级您的自定义模块。

注:

您没有在Stock Picking树中收到错误,因为您已添加/注册 price_unity

您的观看代码很好。