【问题标题】:How to make different records in one list view direct to different form views in odoo 10如何使一个列表视图中的不同记录直接指向odoo 10中的不同表单视图
【发布时间】:2018-03-16 16:37:13
【问题描述】:

我正在为以下情况寻找更好的解决方案:

对象 A1、A2、A3... An,它们具有相同的属性:a01、a02、a03、...a0n。
它们也有不同的属性:
A1 有 a10, a11, a12, ..., a1n,
A2 有 a20, a21, a22, .... a2n,
A3 有 a30, a31, a32, .... a3n,
An 有 an0, ​​an1, an2, .... ann,

这是预期的结果:
一个列表视图显示所有对象(A1、A2、A3、...An)的属性 a01、a02、a03、...a0n 的值。
单击列表视图中的记录时,将打开并显示该对象的表单。

例如:

我们有 3 条记录:
来自对象 A1 的记录 1
来自对象 A2 的记录 2
来自对象 A3 的记录 3。

所以在列表视图中属性的值:

a01, a02, a03, ... a0n

显示所有三个记录。

点击记录1,会打开对象A1的表格,显示属性a10、a11、a12、...、a1n的值;

点击记录2,会打开对象A2的窗体,显示属性a20、a21、a22、...、a2n的值。

换句话说,一个列表视图将指向不同的表单视图。

我目前的解决方案是将所有属性合并到一个模块或类中,所有数据都在一个表中。

当在列表视图中点击不同的记录时,显示的是同一个表单,大部分属性都被隐藏了,看起来像是显示了不同的视图。

点击记录A1时,显示a10、a11、a12、...a1n,隐藏a20、a21、a22、...a2n、an1、an2、...ann。

这个方案的问题是一个模块中的属性越来越多,需要隐藏的属性越来越多。
您有什么想法可以做得更好吗?

【问题讨论】:

    标签: python odoo


    【解决方案1】:

    你知道树视图只需要一个模型。

    不是在合并模型中添加 all 字段,而是在原始模型中添加 common 字段以及模型的名称和记录的 id。 (model_name, record_id) 显示一个树视图,其中包含一个“显示记录”按钮,该按钮调用一个方法来打开单击的记录,但在模型返回的操作字典中

          return {
                 'type': 'ir.actions.act_window',
                  .......
                  ........
                 'view_ode': 'form',  # show the record in form view
    
                'res_model' : self.model_name,
                'res_id' : self.record_id,
            }
    

    这样,您始终可以显示原始模型的原始表单视图。合并模型只需要一个树视图。

    不要显示合并模型的表单视图,您需要强制用户点击树视图中的按钮

              <field name="view_mode">tree</field>
    

    我正在使用我的手机对不起我的英语

    【讨论】:

    • 非常感谢,这将解决大部分问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 2020-08-20
    相关资源
    最近更新 更多