如何在 odoo10 中隐藏基于复杂条件的字段?
How to invisible a field based on complex condition in odoo10?
我在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'])]}"
如何纠正这种情况?
在这种情况下你不能直接应用 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)]}"/>
我在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'])]}"
如何纠正这种情况?
在这种情况下你不能直接应用 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)]}"/>