在openerp中刷新页面时,Treeview不包含记录?

1 投票
2 回答
1380 浏览
提问于 2025-04-17 05:53

我在我的notebook元素的一个页面上添加了一个树形视图。在往树形视图里添加数据时,这些数据会保存到数据库里,并且在树形视图中也能看到。但是当我刷新页面时,树形视图里的数据就消失了,变成空的了。

代码大致是这样的:

<field name="arch" type="xml">
    <notebook colspan="4">
        <page string="Block Area">
            <field colspan="4" name="block_line" nolabel="1" mode="tree,form">
                <tree string="Block">
                    <field name="blockname" />
                    <field name="size" />
                    <field name="activefrom" />
                    <field name="activethru" />
                    <field name="active" />
                </tree>
            </field>
        </page>
    </notebook>
</field>

2 个回答

0

请检查一下你是否没有为字段 'block_line' 的模型写任何搜索过滤条件。因为你在 block_line 中添加了 active 字段,所以只会显示活跃的记录。因此,你需要检查一下 active 字段,或者提供一些数据。

1

正如Don Kirkby所说,首先,你需要检查他提到的所有条件。

另外,从我的角度来看,你的树形视图中有一个一对多字段“block_line”,对于这个字段,你需要检查以下条件。

在Python中:

这个字段应该引用一个多对一字段(你可以称之为block_id),这个字段在你的一对多类中。

在XML中:

多对一字段(block_id)应该出现在一对多的树形视图和表单视图中(可以是可见或不可见)。

保存记录:

在保存一对多行记录时,适当的表单ID(当前记录的ID)必须存储在多对一字段中。

如果在保存时没有存储这个ID,那么在数据库中会有一对多的记录,但在你的树形视图中不会显示,因为在一对多类中没有存储多对一的引用ID(或者存储了错误的多对一 ID),这样就无法显示相关的一对多记录。

在你的情况下,如果数据库中有数据但在树形视图中不显示,那么你需要检查上述情况。

注意:可以参考sale.order和sale.order.line类以获取更多细节。

撰写回答