Odoo 14 CE:为project.task创建发票Many2Many字段遇界面问题求助
解决Odoo14任务表单关联发票时打开标准表单视图的问题
问题根源
在Odoo中,Many2many字段默认打开的新建/编辑视图是该模型的简化表单视图,而非你需要的标准客户发票表单。另外Odoo14中account.invoice已被account.move替代,无需切换模型,保持account.move字段即可。
解决方案
修改任务表单视图中facture字段的定义,通过指定视图ID和上下文参数,强制调用标准发票表单视图:
<page name="situation" string="Situation"> <field name="facture" context="{'default_move_type': 'out_invoice', 'default_partner_id': partner_id}" views="[(ref('account.view_out_invoice_form'), 'form'), (ref('account.view_move_tree'), 'tree'), (ref('account.view_move_search_invoice'), 'search')]"> <tree editable="top" create="true"> <field name="name" /> <field name="campaign_id" string="Source"/> <field name="invoice_partner_display_name" string="Client"/> <field name="invoice_date" string="Date"/> <field name="amount_total_signed" string="Total"/> <field name="amount_residual_signed" string="Reste" /> <field name="payment_state" string="Statut"/> </tree> </field> </page>
参数说明
- context:设置默认值,自动将新建发票类型设为
out_invoice(客户发票),并关联任务对应的客户(partner_id是任务模型的客户字段),减少用户操作。 - views:明确指定使用的视图:
account.view_out_invoice_form:Odoo内置的标准客户发票表单视图IDaccount.view_move_tree:标准发票列表视图account.view_move_search_invoice:标准发票搜索视图,解决选择发票时的异常界面问题
验证效果
修改后刷新页面:
- 点击
facture字段的「新建」按钮,会直接打开和发票菜单一致的标准客户发票表单 - 选择已有发票时,搜索界面也会和发票菜单的搜索界面一致,解决异常显示问题
内容的提问来源于stack exchange,提问作者Wassim Benkoulal
相关产品推荐
相关产品推荐

