OpenERP 6.1将产品品牌置于销售订单行中

时间:2012-11-17 07:39:10

标签: openerp lines sales

我为OpenERP 6.1安装了product_brand模块 http://apps.openerp.com/addon/2507?filter= {%22order_by%22%3A +%22click_counter +降序%22%2C +%22text_search%22%3A +%22product_brand%22}&安培;页= 0

通过Web客户端,我通过插入product_brand_id字段,通过调试(开发人员)模式继承product.product.tree视图,设法在产品列表页面中显示产品品牌。

但现在我希望产品品牌名称显示在销售订单的sale.order.line.tree视图中。 我注意到它们是不同的型号,一个是product.product,另一个是sale.order.line。 是否可以在OpenERP中显示其他模型的字段? 可能是我的问题标题可以改为: 如何在相关(不同)模型中引用字段名称?

1 个答案:

答案 0 :(得分:1)

可以使用相关字段。首先,您需要继承销售订单模型并为产品品牌ID添加相关字段 例如:

from osv import osv, fields
class sale_order_line(osv.osv):
    _inherit = 'sale.order.line'
    _columns = {
        'brand_id': fields.related('product_id','product_brand_id',string='Brand',type='many2one',relation='product.brand')
    }
sale_order_line()

然后需要继承销售订单视图。销售订单行树和表单视图在销售订单视图中指定。因此,使用xpath继承销售订单表单视图。例如:

<?xml version="1.0" encoding="utf-8"?>
  <openerp>
    <data>
      <record model="ir.ui.view" id="view_order_inherited_brand">
        <field name="name">sale.order.brand</field>
        <field name="type">form</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form" />
        <field name="arch" type="xml">
          <xpath expr="//field[@name='order_line']/tree/field[@name='name']" position="after">
              <field name='brand_id'/>
          </xpath>
        </field>
      </record>
  </data>
</openerp>