Wizards&瞬态建模以正确的方式跨多个表(对象)实现复杂的交互式搜索,并可视化从多个对象聚合的数据?
“复杂交互式搜索”表示一个搜索面板,其中包含多个用于输入搜索条件的输入字段,其中输入字段根据用户访问规则和其他字段中的数据进行动态过滤。
“跨多个表”表示存储在不同对象(osv.Model)
中的数据 - 即不仅在不同的表中,而且在不同的python 'objects' (osv.Model)
中。
我目前的实施使用向导&瞬态有以下缺点:
无法过滤/分组搜索结果。搜索结果作为one2many字段处理,在父搜索向导的表单视图中显示为树视图==>因此无法在向导的表单视图中对结果进行分组。坦率地说,如果有一种方法可以在Tree视图中对多个对象进行复杂搜索,我会很高兴,因为我们通过对单个对象进行简单搜索来实现。
更改输入参数并进行其他搜索时,会发生2次重新加载。首先,使用旧结果刷新页面,然后在一两秒钟之后(不显示“正在加载...”)页面将刷新并显示新结果。如果我连续多次使用相同的参数进行搜索,则不会发生这种情况 - 然后只进行1次刷新。这种双重刷新对用户不友好,因为它会产生搜索失败的印象(显示旧结果)。可能发生这种情况是因为在每次搜索时我都会创建一个新的向导实例(在使用autovacuum清除之前保留搜索历史记录)并将其id作为'res_id'
返回。但是,我通过将空列表作为默认搜索结果ID来创建以前向导的副本,因此我不希望旧结果显示出来。此外,我不希望第二次刷新发生。
所有先前搜索的结果都保留在客户端,只是隐藏在页面上而不是从页面中完全删除===>经过大量搜索后,页面变得很重。 E.g:
<div class="oe_view_manager oe_view_manager_inline" style="display: none;">
<div class="oe_view_manager oe_view_manager_inline" style="display: none;">
<div class="oe_view_manager oe_view_manager_inline" style="display: none;">
<div class="oe_view_manager oe_view_manager_inline">
此处:3个旧结果集+当前活动结果集(可见)。认为我可以使用JavaScript摆脱那些旧的结果。不过,我想知道这种保存和隐藏行为的目的是什么?