2016-08-17 73 views
2

我试图修改合作伙伴的销售价目表的默认值(字段property_product_pricelist,标签销售&购买,型号res.partner)。看来,这个默认值是通过XML介绍(因为那场型财产的),添加记录到ir.property型号:如何修改Odoo 8中属性字段的默认值?

<record id="list0" model="product.pricelist"> 
    <field name="name">Public Pricelist</field> 
    <field name="type">sale</field> 
</record> 
<record id="ver0" model="product.pricelist.version"> 
    <field name="pricelist_id" ref="list0"/> 
    <field name="name">Default Public Pricelist Version</field> 
</record> 
<record id="item0" model="product.pricelist.item"> 
    <field name="price_version_id" ref="ver0"/> 
    <field name="base" ref="list_price"/> 
    <field name="sequence">1000</field> 
    <field name="name">Default Public Pricelist Line</field> 
</record> 

<!-- 
Property 
--> 
<record forcecreate="True" id="property_product_pricelist" model="ir.property"> 
    <field name="name">property_product_pricelist</field> 
    <field name="fields_id" search="[('model','=','res.partner'),('name','=','property_product_pricelist')]"/> 
    <field eval="'product.pricelist,'+str(ref('list0'))" name="value"/> 
</record> 

所以我想(我没有尝试的话),如果你修改该XML记录,您将更改默认值,例如:

<record forcecreate="True" id="product.property_product_pricelist" model="ir.property"> 
    <field name="name">property_product_pricelist</field> 
    <field name="fields_id" search="[('model','=','res.partner'),('name','=','property_product_pricelist')]"/> 
    <field eval="'product.pricelist,'+str(ref('my_default_pricelist'))" name="value"/> 
</record> 

的问题是,我想介绍取决于其他领域(user_id)不同的默认值。我的意思是,如果user_idres.users与ID ,我想公共价目表作为默认的价格表,否则,我想我(my_default_pricelist)作为默认的一个创建的价目表。

任何人都可以帮助我吗?

回答

0

如果你想要条件默认值,你必须移动到Python。

尝试扩展模型并重新定义字段,但这次使用fnct=compute_method参数。 compute_method是每次都会运行的方法来设置字段的默认值。

property_product_pricelist字段正在使用的property类是function类的扩展。转到openerp/osv/fields.py,找到function类的定义并查看参数。