gpt4 book ai didi

python - odoo 上下文字段。弹出窗口的默认值

转载 作者:太空狗 更新时间:2023-10-29 22:06:33 25 4
gpt4 key购买 nike

我使用 Odoo(v9)。我有自定义:表单(对于模型 1)、 Action 和带有表单的弹出窗口(对于模型 2)。这里的示例主窗体:

<record id="my_id_form" model="ir.ui.view">
<field name="name">my_name_form</field>
<field name="model">my_model_one</field>
<field name="arch" type="xml">
<form string="Name">
<sheet>
<group>
<field name="partner_id"/>
<!-- button which open popup with my_model_two -->
<button string="Open popup"
name="%(my_module.action_open_popup)d"
type="action"
class="btn-link"/>
</group>
</sheet>
</form>
</field>
</record>

打开弹出窗口按钮的窗口操作:

<record id="action_open_popup" model="ir.actions.act_window">
<field name="name">action name</field>
<field name="res_model">my_model_two</field>
<field name="view_id" ref="model_two_form_popup"/>
<!--
How I can send partner_id from main form to popup?
I tried different ways in context field, but all in vain
<field name="context">{'default_partner_id': ?????,}</field>
-->
<field name="target">new</field>
</record>

示例 my_model_one

class MyModelOne(models.Model):
_name = 'my_model_one'

partner_id = fields.Many2one('res.partner', string='Partner')

弹出窗体:

<record id="model_two_form_popup" model="ir.ui.view">
<field name="name">Popup name</field>
<field name="model">my_model_two</field>
<field name="arch" type="xml">
<form string="Popup text">
<sheet>
<group>
<field name="partner_id" invisible="1"/>
<group>
</sheet>
</form>
</field>
</record>

我的问题是:如何将值从主窗体中的字段发送到弹出窗体?(partner_id)

我看到代码中如何使用 active_id、字符串或整数值。但我还没有找到如何发送字段值或如何为自定义逻辑注册方法。有人可以提供一个小例子吗?提前致谢。

最佳答案

我找到了解决方案。在元素按钮中需要像这样添加context:

<button string="Open popup"
name="%(my_module.action_open_popup)d"
type="action"
class="btn-link"
<!-- name_of_parameter: name_of_field -->
context="{'partner_id': partner_id}"/>

在此之后我们需要将默认值设置为弹出:

<record id="action_open_popup" model="ir.actions.act_window">
<field name="name">action name</field>
<field name="res_model">my_model_two</field>
<field name="view_id" ref="model_two_form_popup"/>
<!-- set default value to field from context parameter by name -->
<field name="context">{'default_partner_id': context.get('partner_id', False),}</field>
<field name="target">new</field>
</record>

关于python - odoo 上下文字段。弹出窗口的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34926074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com