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。但是如果我直接更新表单视图,我可以获取它 我整天都被这个问题困扰着。我找到了一些答案,但不够详细:
@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,所以您可以随时更改您想要的内容