将一些参数从操作传递到表单视图
Pass some parameters from the action to a form view
具体说明,我在base.view_partner_form。我在那里插入了一个新页面,如下所示:
<record id="view_partner_get_Emails" model="ir.ui.view">
<field name="name">res.partner.property.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="arch" type="xml">
<page name="internal_notes" position="before">
<page string="Emails">
<field name="mail_message_lines" mode="tree" style="overflow:hidden;">
<tree string="Emails">
<field name="date" />
<field name="subject" />
<field name="partner_ids" />
<field name="cc" />
<field name="email_from" />
<field name="body" style="height: 40px; overflow:hidden;" />
</tree>
</field>
</page>
</page>
</field>
</record>
此页面包含我在 mail.message table 上插入的一些电子邮件(mail.message 和 res.partner 之间的多对多关系)
点击任何电子邮件,mail.view_message_form 打开,我也修改过(将一些字段设置为只读)。
我的问题如下:当我单击 res.partner 表单中的电子邮件时,我希望将该合作伙伴的 ID 传递到新表单的上下文中。如何实现?
您的目的将通过在那里定义内联表单视图来解决。
<page string="Emails">
<field name="mail_message_lines" mode="tree" style="overflow:hidden;">
<tree string="Emails">
<field name="date" />
<field name="subject" />
<field name="partner_ids" />
<field name="cc" />
<field name="email_from" />
<field name="body" style="height: 40px; overflow:hidden;" />
</tree>
<form string="Emails">
<field name="date" readonly="1" />
<field name="subject" readonly="1" />
<field name="partner_ids" readonly="1" />
<field name="cc" />
<field name="email_from" />
<field name="body" style="height: 40px; overflow:hidden;" />
</form>
</field>
</page>
无需传递参数来设置字段只读/不可见,但是您可以直接在内联视图中执行此操作。
再看一个答案。
我猜对了:您要自动填充 partner_ids?尝试在上下文中设置当前打开的伙伴,例如:
<field name="mail_message_lines" mode="tree" style="overflow:hidden;" context={'default_partner_ids':[active_id]}>...</field>
具体说明,我在base.view_partner_form。我在那里插入了一个新页面,如下所示:
<record id="view_partner_get_Emails" model="ir.ui.view">
<field name="name">res.partner.property.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="arch" type="xml">
<page name="internal_notes" position="before">
<page string="Emails">
<field name="mail_message_lines" mode="tree" style="overflow:hidden;">
<tree string="Emails">
<field name="date" />
<field name="subject" />
<field name="partner_ids" />
<field name="cc" />
<field name="email_from" />
<field name="body" style="height: 40px; overflow:hidden;" />
</tree>
</field>
</page>
</page>
</field>
</record>
此页面包含我在 mail.message table 上插入的一些电子邮件(mail.message 和 res.partner 之间的多对多关系)
点击任何电子邮件,mail.view_message_form 打开,我也修改过(将一些字段设置为只读)。
我的问题如下:当我单击 res.partner 表单中的电子邮件时,我希望将该合作伙伴的 ID 传递到新表单的上下文中。如何实现?
您的目的将通过在那里定义内联表单视图来解决。
<page string="Emails">
<field name="mail_message_lines" mode="tree" style="overflow:hidden;">
<tree string="Emails">
<field name="date" />
<field name="subject" />
<field name="partner_ids" />
<field name="cc" />
<field name="email_from" />
<field name="body" style="height: 40px; overflow:hidden;" />
</tree>
<form string="Emails">
<field name="date" readonly="1" />
<field name="subject" readonly="1" />
<field name="partner_ids" readonly="1" />
<field name="cc" />
<field name="email_from" />
<field name="body" style="height: 40px; overflow:hidden;" />
</form>
</field>
</page>
无需传递参数来设置字段只读/不可见,但是您可以直接在内联视图中执行此操作。
我猜对了:您要自动填充 partner_ids?尝试在上下文中设置当前打开的伙伴,例如:
<field name="mail_message_lines" mode="tree" style="overflow:hidden;" context={'default_partner_ids':[active_id]}>...</field>