如何在OpenERP 7中将变量从一个视图发送到另一个视图?

时间:2014-11-17 16:43:35

标签: python xml openerp openerp-7

我在模型的表单视图中添加了一个按钮(event.event)。此按钮重定向到其他模型(event.registration)的树视图。我试图将变量(event_id)从第一个视图传递给第二个视图。

然后,在模型event_registration的树状视图中,我使用act_window向菜单更多(位于页面顶部)添加了一个新选项。我添加的选项重定向到另一个模型(mail.compose.message)的表单视图。

我需要的是将event_id视图中的变量event.event传递给mail.compose.message的视图。我怎样才能做到这一点?

模型 event.event

XML

<record id="action_view_event_registers"
    model="ir.actions.act_window">
    <field name="name">View registers</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">event.registration</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree</field>
    <field name="context">{'event_id': context.get('event_id', False),}</field>
    <field name="view_id" ref="event.view_event_registration_tree" />
    <field name="target">current</field>
</record>

<record id="event_extended_form_view" model="ir.ui.view">
    <field name="name">event.extended.form.view</field>
    <field name="model">event.event</field>
    <field name="inherit_id" ref="event.view_event_form" />
    <field name="type">form</field>
    <field name="arch" type="xml">
        <field name="speaker_confirmed" position="after">
            <button name="%(event_extended.action_view_event_registers)d"
                string="View registers" type="action" icon="gtk-find"
                context="{'event_id': active_id}"/>
        </field>
    </field>
</record>

模型 event.registration

XML

<act_window name="Invite partners to an event"
    res_model="mail.compose.message"
    src_model="event.registration"
    view_mode="form"
    multi="True"
    target="new"
    context="{'event_id': context.get('event_id'),}"
    id="invite_partner_to_event"/>

模型 mail.compose.message

PY

def _default_template(self, cr, uid, context=None):
    event_id = context.get('event_id', None)
    _logger.info(event_id)
    return False

_defaults = {
    'template_id': _default_template,
}

正如您所看到的,我什么都不做,只是尝试在日志文件中打印event_id。但是,它正在返回None

请问有人帮我吗?我不确定这是否是实现目标的正确方法。

1 个答案:

答案 0 :(得分:0)

只需更新一个从上下文访问活动ID的内容,可以通过上下文访问活动ID。

<record id="event_extended_form_view" model="ir.ui.view">
    <field name="name">event.extended.form.view</field>
    <field name="model">event.event</field>
    <field name="inherit_id" ref="event.view_event_form" />
    <field name="type">form</field>
    <field name="arch" type="xml">
        <field name="speaker_confirmed" position="after">
            <button name="%(event_extended.action_view_event_registers)d"
                string="View registers" type="action" icon="gtk-find"
                context="{'event_id': context.get('active_id')}"/>
        </field>
    </field>
</record>