gpt4 book ai didi

python - 如何使一个 ListView 中的不同记录直接到odoo 10中的不同表单 View

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:18 24 4
gpt4 key购买 nike

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

对象 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,

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

例如:

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

所以在列表中查看属性的值:

a01、a02、a03、...a0n

显示所有三个记录。

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

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

换句话说,一个 ListView 将指向不同的表单 View 。

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

当点击 ListView 中的不同记录时,会显示相同的表单,大部分属性都被隐藏,看起来像是显示了不同的 View 。

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

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

最佳答案

您知道 TreeView 只需要一个模型吗?

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

      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,
}

这样,您始终会显示原始模型的原始表单 View 。合并模型只需要一个 TreeView 。

不要显示您需要强制用户单击 TreeView 中的按钮的合并模型的表单 View

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

我正在使用手机,抱歉我的英语不好

关于python - 如何使一个 ListView 中的不同记录直接到odoo 10中的不同表单 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49294299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com