2015-02-03 6 views
5

attrs="{'invisible': [('rule_id.type_test', '!=', 'A')]}" ऊपर दिए गए कोड में काम नहीं करते, मैं इसे कैसे ठीक कर सकता हूं?फ़ील्ड को कैसे छुपाएं हालत odoo पर निर्भर करता है?

class test_list(models.Model): 
    _name = 'test.list' 

    type_test = fields.Selection([('A', 'aaaa'),('B','bbbbb')], default='A', string="Type", required=True) 
    rule_list = fields.One2many('test.rule', 'rule_id') 

class test_rule(models.Model): 
    _name = 'test.rule' 

    rule_id = fields.Many2one('test.list', required=True) 

    ul = fields.Many2one('product.ul', string='Package Logistic Unit' 

<record model="ir.ui.view" id="rules_form_view"> 
      <field name="name">test.rules.form.view</field> 
      <field name="model">test.rule</field> 
      <field name="arch" type="xml"> 
       <form string="Test Rules"> 
        <field name="ul" attrs="{'invisible': [('rule_id.type_test', '!=', 'A')]}"/> 
       </form> 
      </field> 
</record> 

उत्तर

6

क्षेत्रों आप attrs में उपयोग वर्तमान दृश्य में उपस्थित होने की जरूरत है। अपने फ़ॉर्म के

class test_rule(models.Model): 
    _name = 'test.rule' 

    rule_id = fields.Many2one('test.list', required=True) 
    type_test = fields.Selection(related='rule_id.type_test') 
    ul = fields.Many2one('product.ul', string='Package Logistic Unit') 

और फिर:

आप मॉडल करने के लिए इस क्षेत्र को जोड़ सकते हैं

<form string="Test Rules"> 
    <field name="type_test" invisible="1"/> 
    <field name="ul" attrs="{'invisible': [('type_test', '!=', 'A')]}"/> 
</form> 
+0

आपको बहुत बहुत बहुत अच्छी तरह से काम कर रहे धन्यवाद – Astr0

संबंधित मुद्दे