将一些参数从操作传递到表单视图

Posted

技术标签:

【中文标题】将一些参数从操作传递到表单视图【英文标题】:Pass some parameters from the action to a form view 【发布时间】:2016-06-17 15:58:45 【问题描述】:

要指定,我在 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 表中插入的一些电子邮件(mail.message 和 res.partner 之间的many2many 关系)

点击任何电子邮件,mail.view_message_form 打开,我也修改了(设置某些字段为只读)。

我的问题如下:当我单击 res.partner 表单中的电子邮件时,我希望将该合作伙伴的 ID 传递到其上下文中的新表单。如何实现?

【问题讨论】:

【参考方案1】:

让我猜对了:你想自动填充 partner_ids 吗?尝试在上下文中设置当前打开的伙伴,例如:

<field name="mail_message_lines" mode="tree" style="overflow:hidden;" context='default_partner_ids':[active_id]>...</field>

【讨论】:

我并不完全想这样做,我只想在我的新表单中传递 partner_id 以便我可以进行一些搜索。您的回答帮助我解决了我的问题。谢谢 你能用当前没有保存的新记录试试这个吗?因为只有 active_id 并且只有在保存任何记录后才可用。【参考方案2】:

您的目的将通过在此处定义内联表单视图来解决。

<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>

不需要传递参数来设置字段只读/不可见,但是您可以直接在内联视图中执行此操作。

Click here查看更多答案。

【讨论】:

以上是关于将一些参数从操作传递到表单视图的主要内容,如果未能解决你的问题,请参考以下文章

通过表单将复杂类型从部分视图传递到控制器操作

如何将复杂的键值参数表单视图传递给mvc中的控制器?

将输入变量从PowerShell表单传递到cmdlet参数会导致空白数据

无法将参数从 html 传递到视图函数

NoReverseMatch:无法将参数从模板传递到视图。

将模型和额外参数从视图传递到 MVC 中的操作