Odoo技术咨询:如何修改向导表单视图的默认标题?
Odoo自定义表单标题的实现方法

问题描述
Odoo生成的表单默认标题为“Odoo”,希望自定义该表单标题。
用户提供的相关代码
XML视图代码
<record model="ir.ui.view" id="email_compose_message_wizard_form"> <field name="name">mail.compose.message.form</field> <field name="model">mail.compose.message</field> <field name="groups_id" eval="[Command.link(ref('base.group_user'))]"/> <field name="arch" type="xml"> <form string="Compose Email"> <div style="display_none"> <group> <!-- truly invisible fields for control and options --> <field name="composition_mode" invisible="1"/> <field name="model" invisible="1"/> <field name="res_id" invisible="1"/> <field name="is_log" invisible="1"/> <field name="parent_id" invisible="1"/> ...
Python模型代码
class MailComposer(models.TransientModel): _name = 'mail.compose.message' _inherit = 'mail.composer.mixin' _description = 'Email composition wizard' _log_access = True _batch_size = 500
解决方案
针对mail.compose.message这个邮件撰写向导表单,自定义标题有两种可靠方式,推荐通过自定义模块继承修改(避免直接修改系统代码导致升级丢失配置):
- 修改视图的form标签属性
表单弹窗的标题通常由视图中<form>标签的string属性控制,继承原视图并修改该属性即可:
<record model="ir.ui.view" id="custom_email_compose_form" inherit_id="mail.email_compose_message_wizard_form"> <field name="arch" type="xml"> <form position="attributes"> <attribute name="string">你的自定义标题</attribute> </form> </field> </record>
- 修改对应动作的名称
如果表单是通过窗口动作打开的,动作的name属性也会影响标题,继承原动作并修改:
<record model="ir.actions.act_window" id="custom_mail_compose_action" inherit_id="mail.action_mail_compose_message"> <field name="name">你的自定义标题</field> </record>
完成上述配置后,升级自定义模块,即可看到表单标题已替换为自定义内容。
内容的提问来源于stack exchange,提问作者Wald Sin
相关产品推荐
相关产品推荐

