如何通过Odoo中的布尔字段进行排序?

时间:2015-06-16 15:31:20

标签: openerp odoo odoo-8 kanban

我无法理解Odoo API的行为。它让我发疯了。

如您所知,如果您想通过某些字段订购模型,则必须修改模型的属性_order。它工作正常。

现在,假设您想要按某些字段排序特定视图而不更改模型的正常顺序(这意味着:按某些字段排序特定视图,其他字段排序同一模型的其余视图)。

在这种情况下,您必须使用XML代码,在default_orderkanban标记中指定属性tree,具体取决于您要修改的视图。

我过去曾成功地使用过它。所以我想再次将它应用于看板视图(这次我想通过布尔字段, char 和另一个 char )进行排序

现在我很惊讶:按布尔字段排序如果值为False,则会反转下一个字段的顺序。

例如 我们有6条记录,我们要按布尔,名称和姓氏排序;在default_order的看板视图中:

  • 是的,John,Doe
  • 是的,Jane,Doe
  • 是的,John,Xoe
  • 错,John,Die
  • False,Jane,Die
  • False,Jane,Xie

因此,在示例中,在看板视图中,我们会看到它们以这种方式订购:

  1. 是的,Jane,Doe
  2. 是的,John,Doe
  3. 是的,John,Xoe
  4. 错,John,Die
  5. False,Jane,Xie
  6. False,Jane,Die
  7. 如您所见,如果布尔值为True,则记录按布尔名称姓氏排序,这就是我想要的。但如果值为False,则记录按布尔名称DESC 姓氏DESC 排序。

    发生了什么?你有同样的经历吗?我如何通过布尔,然后是 char ,然后是另一个 char

    来订购

1 个答案:

答案 0 :(得分:1)

我用来奇数排序的一种方法是使用上下文来控制它。在看板视图的窗口操作中,添加类似

的上下文
<field name="context">{'do_my_special_sort': True}</field>

然后在模型上覆盖搜索方法,在上下文中检查此标志并设置排序顺序。

相关问题