我有一个自定义的Odoo模块,其中包括记录付款。为此,我使用会计模块中的付款表单。
我想允许用户根据account.journal
实体上的标记过滤付款日记下拉列表中的选项,因此我按如下方式扩展了实体:
class AccountJournal(models.Model):
_inherit = 'account.journal'
available_as_payment_method = fields.Boolean(string='Available as payment method')
...并在用于编辑付款日记帐的视图中添加了该字段:
<field name="available_as_booking_payment_method"/>
此功能按预期工作,该字段存在于数据库中。
最后,我延长了付款方式:
<record model="ir.ui.view" id="payment_form_update_form">
<field name="name">payment_form_update</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_form" />
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='journal_id']" position="attributes">
<attribute name="domain">[('available_as_booking_payment_method', '=', True)]</attribute>
<!-- <attribute name="invisible">1</attribute> -->
</xpath>
</field>
</record>
出于某种原因,如果我修改域属性,则不会应用它。屏幕截图显示了Odoo调试弹出窗口中的现有域 - 这与我的视图或默认视图保持不变。
如果我应用invisible
标志,该字段将消失,因此我知道视图和xpath是正确的。
感谢有关域名未被应用的原因的任何帮助。
提前致谢
答案 0 :(得分:0)
由于 journal_id 在.py文件中有域定义,您可以尝试覆盖.py文件中的域,如下所示:
journal_id = fields.Many2one(domain=[('available_as_booking_payment_method', '=', True),('type', 'in', ('bank', 'cash'))])
我希望这个答案对你有帮助。