Openerp 当我从树状视图进入表单视图时,如何在fields\u view\u get方法中获取记录

Openerp 当我从树状视图进入表单视图时,如何在fields\u view\u get方法中获取记录,openerp,odoo-9,odoo-view,Openerp,Odoo 9,Odoo View,这个问题是我在堆栈溢出中的第一个问题,我的英语不太好,希望你能理解我 目标:我想根据记录的状态动态更改表单视图。 问题:当我从树状视图进入表单视图时,我无法获取记录或记录的活动\u id。但是如果我直接更新表单视图,我可以获取它 我整天都被这个问题困扰着。我找到了一些答案,但不够详细: 当有人在树状视图中单击记录时,将所选记录的id添加到上下文中,您可以通过上下文在字段\u view\u get方法中获取id。但答案没有告诉我们在树状视图中单击记录时如何将id添加到上下文中 使用读取方法: @a

这个问题是我在堆栈溢出中的第一个问题,我的英语不太好,希望你能理解我

目标:我想根据记录的状态动态更改表单视图。

问题:当我从树状视图进入表单视图时,我无法获取记录或记录的活动\u id。但是如果我直接更新表单视图,我可以获取它

我整天都被这个问题困扰着。我找到了一些答案,但不够详细:

  • 当有人在树状视图中单击记录时,将所选记录的id添加到上下文中,您可以通过上下文在字段\u view\u get方法中获取id。但答案没有告诉我们在树状视图中单击记录时如何将id添加到上下文中
  • 使用读取方法:

    @api.multi
    def read(self,fields=None,load=''u classic\u read'):

    我不明白


  • 感谢您现在获取记录id的唯一方法是保存 在以下情况下:

    我无法为您找到一个简单的解决方案,但如果这是紧急的 你可以这样做:

     1 - define an action that opens the record in tree or kanban view without form
     2 - add a button in the tree view to force the use to open the record from there if
         he want to edit it.
     3 - that button calls a method in your model to open that record in form view
     4 - in the context add the id of that record with special key
     5 - in your fields_view_get  check if that key is in the context and change the form
         arch from there
    
    行动:

    
    .....
    .....
    树
    ...
    
    树:

    
    ....
    ....
    ....
    ...
    ...
    
    在模型中:

    @api.multi
    def open_rec(自身):
    #返回窗口操作
    form\u id=self.env.ref('module\u name.form\u xml\u id').id
    context=self.env.context
    update({'current_rec':self.id}#更改上下文以添加rec id
    返回{
    “名称”:(标题),
    'type':'ir.actions.act_window',
    “视图类型”:“表单”,
    “查看模式”:“表单”,
    'res_model':'model.name',
    “视图id”:表单id,
    '目标':'当前',
    “上下文”:上下文,
    }
    @api.model
    定义字段\u视图\u获取(self,view\u id=None,view\u type='form',toolbar=False,submenu=False):
    结果=超级(YourClass,self)。字段\u视图\u获取(视图id、视图类型、工具栏、子菜单)
    如果context.get('current_rec')和view_type='form':
    #此时您需要更改resutl
    

    希望这能帮助您找到更好的方法,在树状视图中发布它

    您不能获取活动id,但可以获取活动id。我如何获取所选记录的id?是的,这可能是最好的解决方案。非常感谢。我能通过QWEB实现基于记录值设置字段属性的目标吗?如果您是指视图是的,您可以。因为您将有权访问视图的拱形字段,并且它是xml,所以您可以随时更改您想要的内容