2015-04-01 110 views
3

我在Odoo 8.0安裝程序的客戶部分中創建名爲Master Account的選項。如果選擇,它將設置另一個帳戶作爲祖父母。這對於擁有多個地點但只有一個結算中心的公司/客戶非常有用。我能夠應用此功能,但現在我不想顯示將主帳戶設置爲已設置爲某人的主人的公司的選項。隱藏One2many字段有條件的Odoo/OpenERP

我曾嘗試以下,它不工作:

PYTHON

from openerp import models, fields, api, _ 

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

    related_partner_id = fields.Many2one('res.partner', 'Master Account') 
    related_partner_ids = fields.One2many('res.partner', 'Master Account') 

XML

<?xml version="1.0" ?> 
<openerp> 
    <data> 
     <record model="ir.ui.view" id="base_view_partner_demo_inherit"> 
      <field name="name">res.partner.form.demo</field> 
      <field name="model">res.partner</field> 
      <field name="inherit_id" ref="base.view_partner_form" /> 
      <field name="arch" type="xml"> 
       <field name="website" position="after"> 
        <field name="related_partner_id" attrs="{'invisible': [('related_partner_ids','>', '0')]}"/> 
       <field name="related_partner_ids" invisible="1"/> 
       <label string="Master Account" attrs="{'invisible': [['related_partner_id', '!=', False]]}"/> 
       </field> 
      </field> 
     </record> 


    </data> 
</openerp> 

任何幫助將不勝感激。我是Odoo的全新品牌。

回答

5

嘗試以下,

from openerp import models, fields, api, _ 

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

    related_partner_id = fields.Many2one('res.partner', 'Master Account') 
    related_partner_ids = fields.One2many('res.partner', 'related_partner_id', 'Master Account') 

One2many需要逆場ID爲好。 並設置ATTRS這樣,

<field name="related_partner_id" attrs="{'invisible': [('related_partner_ids','!=', False)]}"/> 

或者你應該寫這樣的

<field name="related_partner_id" attrs="{'invisible': [('related_partner_ids','!=', [])]}"/> 

對於Many2many領域,ATTRS應以下列方式被應用。 \t \t \t \t <字段名= 「網站」 位置= 「後」> <字段名= 「related_pa​​rtner_id」 ATTRS =「{ '看不見的':

<field name="m2m_field" attrs="{'invisible': [('m2m_field','=', [(6,0,[])])]}"/>