openerp 在查看模式字段丢失上下文时
openerp when in view mode fields lose context
从表单 "A" 我想在单击 Many2One 字段时打开特定表单 "B"。
我在这个字段的上下文中放置了通常的
'form_view_ref': 'model.form_id'
但这仅在 "A" 处于编辑模式时有效。如果它处于查看模式,它会打开 "C" 表单。我注意到 JSON 仅请求 "lose" 我设置的上下文并发送标准的空上下文(仅 timezone/uid 等)
我以前从来没有意识到这一点。这是某种错误吗?
@Alessandro Ruffolo,
context在server client之间是可变的,context有uid、active_d、active_ids、active_model、User timezone、user lang等共同属性。当调用 ORM 方法时,您可能已经有了一个上下文——例如,框架将为您提供一个作为几乎每个方法的参数。
如果您确实有上下文,那么始终将它传递给您调用的每一个方法是非常重要的。但是当你不在 python 中的任何方法的某处传递上下文时,或者 js 客户端服务器将生成新的上下文,并且它们在核心代码中有很多旧的地方,以至于上下文因不传递而被破坏。
当您不传递上下文时,它会中断上下文并准备新的上下文。
使用 New v8 API 上下文更加一致,因为这不是必需的。
最佳
从表单 "A" 我想在单击 Many2One 字段时打开特定表单 "B"。 我在这个字段的上下文中放置了通常的
'form_view_ref': 'model.form_id'
但这仅在 "A" 处于编辑模式时有效。如果它处于查看模式,它会打开 "C" 表单。我注意到 JSON 仅请求 "lose" 我设置的上下文并发送标准的空上下文(仅 timezone/uid 等)
我以前从来没有意识到这一点。这是某种错误吗?
@Alessandro Ruffolo,
context在server client之间是可变的,context有uid、active_d、active_ids、active_model、User timezone、user lang等共同属性。当调用 ORM 方法时,您可能已经有了一个上下文——例如,框架将为您提供一个作为几乎每个方法的参数。
如果您确实有上下文,那么始终将它传递给您调用的每一个方法是非常重要的。但是当你不在 python 中的任何方法的某处传递上下文时,或者 js 客户端服务器将生成新的上下文,并且它们在核心代码中有很多旧的地方,以至于上下文因不传递而被破坏。 当您不传递上下文时,它会中断上下文并准备新的上下文。
使用 New v8 API 上下文更加一致,因为这不是必需的。
最佳