如何在Odoo 10中以编辑模式打开现有记录?

时间:2018-09-12 09:54:34

标签: python odoo odoo-10

我无法在编辑模式下打开现有记录。这是Python方法的返回,该方法打开记录的表单视图:

@api.multi
def open_view(self):
    return {
        'name': _('My Wizard'),
        'type': 'ir.actions.act_window',
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'my.model',
        'target': 'current',
        'res_id': self.id,
    }

而且我尝试(没有成功)将以下键添加到返回字典中:

标志选项mode

'flags': {
    'form': {
        'options': {
            'mode': 'edit',
        },
    }
},

它什么也没做,我猜只有在缺少密钥res_id的情况下它才能起作用。

标志选项initial_mode

'flags': {
    'form': {
        'options': {
            'initial_mode': 'edit',
        },
    }
},

mode相同。

上下文键form_view_initial_modeforce_detailed_view

'context': {
    'form_view_initial_mode': 'edit',
    'force_detailed_view': 'true'
},

它们也不执行任何操作,它们似乎仅在版本11中起作用。

目标inline

'target': 'inline',

这是唯一可行的方法,但是它使表单顶部的“创建”和“编辑”按钮消失了,我不希望这样。

最后,我需要在编辑模式下并使用'target': 'current'打开一个现有记录,以具有通用的表单按钮并像普通表单一样(而不是弹出窗口)。 / p>

有人知道如何管理吗?

2 个答案:

答案 0 :(得分:2)

使用odoo v12

return {
        'type': 'ir.actions.act_window',
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'project.project',
        'res_id': MY_RECORD.id,
        'context': {'form_view_initial_mode': 'edit'},
    }

答案 1 :(得分:0)

'flags': {'initial_mode': 'edit'}应该可以在Odoo V10中使用。

我使用以下代码在hr.employee上通过服务器操作对其进行了尝试。我将动作添加到“更多/动作”菜单中,在表单视图中打开了一名员工,然后开始了动作。

action ={
        'type': 'ir.actions.act_window',
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'hr.employee',
        'target': 'current',
        'res_id': record.id,
        'flags': {'initial_mode': 'edit'}
    }