在odoo View中显示动态值?

问题描述 投票:1回答:1

我正在使用odoo9,我有一个确认弹出窗口,这个弹出窗口我想显示一些动态值吗?我怎样才能做到这一点?请看一下屏幕截图enter image description here

我想用一个动态值的用户名替换当前联系人。我怎样才能做到这一点?以下是我的观看代码。

        <record id="view_dialog_temp_login_confirmation" model="ir.ui.view">
        <field name="name">Temp Login Confirmation</field>
        <field name="model">olims.message_dialog_box</field>
        <field name="arch" type="xml">
            <form string="Client User Confirmation">
                <p class="o_dialog_warning">
                   Current Contact user will be deleted.</p>
                <p>Do you really want to replace Contact User? </p>
                <field name="title" invisible="1"/>
                <footer>
                     <button name="create_temp_login" string="Yes" type="object" class="btn-primary"/>
                     <button string="No" class="btn-default" special="cancel"/>
                </footer>
            </form>
        </field>
    </record>

打开向导代码:

     @api.multi
     def open_temp_login_confirm_dialog(self, **kw):
    view_id = self.env['ir.ui.view'].search([('name', '=', 'Temp Login Confirmation')])

    return {
        'name': ('Confirmation'),
        'view_mode': 'form',
        'view_type': 'form',
        'res_model': 'olims.message_dialog_box',
        'view_id': [view_id.id],
        'target': 'new',
        'type': 'ir.actions.act_window',
        'context': context,
    }
odoo odoo-9
1个回答
0
投票

您可以在向导模型Many2one上为关系res.partner添加olims.message_dialog_box,然后使用默认值扩展该向导的open_方法,或者只需在打开它之前创建向导记录。

partner_id = fields.Many2one(comodel_name="res.partner")

变体1具有默认值:

@api.multi
def open_temp_login_confirm_dialog(self):
    view_id = self.env['ir.ui.view'].search(
        [('name', '=', 'Temp Login Confirmation')])
    context = dict(self.env.context)
    context['default_partner_id'] = self.env.context.get('active_id')
    return {
        'name': ('Confirmation'),
        'view_mode': 'form',
        'view_type': 'form',
        'res_model': 'olims.message_dialog_box',
        'view_id': [view_id.id],
        'target': 'new',
        'type': 'ir.actions.act_window',
        'context': context,
    }

变体2创建了一个向导并打开它

@api.multi
def open_temp_login_confirm_dialog(self):
    view_id = self.env['ir.ui.view'].search(
        [('name', '=', 'Temp Login Confirmation')])
    wizard = self.env['olims.message_dialog_box'].create({
        'partner_id': self.env.context.get('active_id')}) 
    return {
        'name': ('Confirmation'),
        'view_mode': 'form',
        'view_type': 'form',
        'res_model': 'olims.message_dialog_box',
        'view_id': [view_id.id],
        'target': 'new',
        'type': 'ir.actions.act_window',
        'res_id': wizard.id
    }
© www.soinside.com 2019 - 2024. All rights reserved.