将fleet_service_type.name的所有值检索到sale.order

时间:2014-03-31 09:33:16

标签: python-2.7 openerp-7

FLEET模块有一个服务类型列表

class fleet_service_type(osv.Model):
    _name = 'fleet.service.type'
    _description = 'Type of services available on a vehicle'
    _columns = {
        'name': fields.char('Name', required=True, translate=True),
        'cost':fields.float('Cost Of Service',required=True),
        'category': fields.selection([('contract', 'Contract'), ('service', 'Service'), ('both', 'Both')], 'Category', required=True, help='Choose wheter the service refer to contracts, vehicle services or both'),
    }
fleet_service_type()

我希望在我的sale.order模块中有一个字段,它将成为fleet模块中所有'name'值的下拉列表。 任何人都可以建议我如何做到这一点

1 个答案:

答案 0 :(得分:1)

要获取关系对象(Fleet服务类型)的所有值,您需要在many2one relationship上添加Sale Order目标对象。

将此代码放入.py文件

class sale_order(osv.Model):       
    _inherit = 'sale.order'
    _columns = {
        'fleet_id': fields.many2one('fleet.service.type', 'Fleet Service Type'),
    }

并在view xml file上进行一些自定义。

<record id="view_sale_order_extended_form1" model="ir.ui.view">
        <field name="name">sale.order.form1.extend</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form" />
        <field name="arch" type="xml">
            <field name="partner_id" position="before">
                <field name="fleet_id"/>
            </field>
        </field>
    </record>

在此之后,您可以在Fleet Service Type中的Customer字段后看到字段Sale Order Form.并且您可以选择Fleet Service Type的期望值。

希望这会对你有所帮助。