【问题标题】:How to return form edit view in odoo?如何在odoo中返回表单编辑视图?
【发布时间】:2017-01-09 06:14:45
【问题描述】:

以下代码适用于表单视图

search_ids = self.env['sale.order'].search([])
last_id = search_ids and max(search_ids)        
return {
    'name': _('Revise Quote'),
    'view_type': 'form',
    'view_mode': 'form',
    'res_model': 'sale.order',
    'res_id': last_id.id,
    'type': 'ir.actions.act_window',
}

如何重定向到编辑视图?

【问题讨论】:

    标签: openerp odoo-8 odoo-9


    【解决方案1】:

    在日历模块中,我可以看到他们返回了一个附加键 'flags'

    编辑:我有机会测试它,因为我收到了类似的任务,我可以确认下面的 flags 可以解决问题。

    日历/日历.py

    def open_after_detach_event(self, cr, uid, ids, context=None):
        ...
        return {
            'type': 'ir.actions.act_window',
            'res_model': 'calendar.event',
            'view_mode': 'form',
            'res_id': new_id,
            'target': 'current',
            'flags': {'form': {'action_buttons': True, 'options': {'mode': 'edit'}}}
        }
    

    【讨论】:

      【解决方案2】:

      我不认为你可以直接打开编辑视图。

      Edit 像这样在 Odoo 中工作,当您开始编辑时,您并没有编辑实际记录,它类似于虚拟记录(真实的复制示例),按下保存后,您正在更新 db 中的记录。

      因此,您不能只使用标准方法无法使用的操作返回打开虚拟记录的编辑视图。

      【讨论】:

      • 在复制记录时,它的复制也进入编辑选项。喜欢那个过程吗???
      • 它对开发者的操作不是很清楚,odoo 对其工作原理有很多秘密,但无论如何你可以阅读源代码并阅读有关编辑功能的所有信息。祝你好运。但请注意,使用标准操作无法实现此目的,odoo 不推荐使用非标准方法。所以在开发过程中你必须尝试使用​​标准方法
      【解决方案3】:

      在 /web/static/src/js/view_form.js 中试试这个(第 116 行) 将initial_mode 的值从view 更改为edit。它将影响所有表单视图。

       _.defaults(this.options, {
              "not_interactible_on_create": false,
              // "initial_mode": "view",
              "initial_mode": "edit",
              "disable_autofocus": false,
              "footer_to_buttons": false,
          });
      

      希望它能解决你的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        相关资源
        最近更新 更多