2017-06-19 34 views
0

我在account.payment中添加一个字段。如何根据odoo10中的复杂条件隐藏字段?

bank_id = fields.Many2one('res.bank', string="Bank") 

当我点击account.invoice中的注册支付按钮,然后它打开注册支付向导。

我想看不见bank_id根据条件

journal_id.type not in bank 

它是如何可能的?odoo

xml我添加这样一个条件。

attrs="{'invisible': [('journal_id.type', 'not in', ['bank'])]}" 

如何更正条件?

在这种情况下

回答

2

你不能直接申请attrs,所以你必须采取一个计算布尔字段检查日志类型和基于该领域做出bank_id可见或不可见

在account.payment

from odoo import models, fields, api, _ 

class account_payment(models.Model): 
    _inherit = "account.payment" 

    bank_id = fields.Many2one('res.bank', string="Bank") 
    check_journal = fields.Boolean(string="Journal Type", compute='_check_journal_type') 

    @api.depends('journal_id') 
    def _check_journal_type(self): 
     if self.journal_id.type == 'bank': 
      self.check_journal = False 
     else: 
      self.check_journal = True 

in account.payment view

<field name="check_journal" invisible="1"/> 
<field name="bank_id" attrs="{'invisible': [('check_journal', '=', True)]}"/> 
相关问题