【问题标题】:How to invisible a field based on complex condition in odoo10?如何在odoo10中基于复杂条件使字段不可见?
【发布时间】:2017-06-19 05:46:35
【问题描述】:

我在account.payment 中添加了一个字段。

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'])]}"

如何纠正这种情况??

【问题讨论】:

    标签: attr odoo-10 invisible


    【解决方案1】:

    在这种情况下,您不能直接申请 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
    

    在 account.payment 视图中

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 2021-05-07
      • 2020-06-27
      • 1970-01-01
      • 2019-09-04
      • 2014-07-17
      • 1970-01-01
      相关资源
      最近更新 更多