如何通过 Odoo 中的布尔字段进行排序?
How to order by a boolean field in Odoo?
我无法理解 Odoo 的行为 API。这让我发疯。
如您所知,如果您想按模型的某些字段对模型进行排序,则必须修改模型的属性 _order
。它工作正常。
现在,假设您想按某些字段对特定视图进行排序而不改变模型的正常顺序(这意味着:按某些字段对特定视图进行排序,而同一模型的其余视图按其他字段进行排序).
在这种情况下,您必须使用 XML 代码,在 kanban
或 tree
标记中指定属性 default_order
,具体取决于您正在修改的视图.
我过去曾成功地使用过它。所以我想再次将其应用于看板视图(这次我想通过 boolean 字段、char 和另一个 char).
现在让我感到惊讶的是:按 布尔值 字段排序会反转下一个字段的顺序,如果它的值为 False
.
例如 我们有 6 条记录,我们想按布尔值、姓名和姓氏排序;在 default_order
:
的看板视图中
- 没错,John,Doe
- 是的,简,Doe
- 是的,约翰,Xoe
- 假的,约翰,死
- 假,简,死
- 假,简,谢
因此在示例中,在看板视图中我们将看到它们以这种方式排序:
- 是的,简,Doe
- 没错,John,Doe
- 是的,约翰,Xoe
- 假的,约翰,死
- 假,简,谢
- 假,简,死
如您所见,如果布尔值 True
,则记录按 boolean、name 和 姓氏,这就是我想要的。但如果它的值为 False
,则记录按 boolean、name DESC、surname DESC[=72] 排序=].
这是怎么回事?你有同样的经历吗?我如何按 boolean、char、然后另一个 char??
我用来进行奇数排序的一种方法是使用上下文来控制它。在看板视图的 window 操作中,添加一个上下文,如
<field name="context">{'do_my_special_sort': True}</field>
然后在模型上覆盖搜索方法,在上下文中检查此标志并设置排序顺序。
我无法理解 Odoo 的行为 API。这让我发疯。
如您所知,如果您想按模型的某些字段对模型进行排序,则必须修改模型的属性 _order
。它工作正常。
现在,假设您想按某些字段对特定视图进行排序而不改变模型的正常顺序(这意味着:按某些字段对特定视图进行排序,而同一模型的其余视图按其他字段进行排序).
在这种情况下,您必须使用 XML 代码,在 kanban
或 tree
标记中指定属性 default_order
,具体取决于您正在修改的视图.
我过去曾成功地使用过它。所以我想再次将其应用于看板视图(这次我想通过 boolean 字段、char 和另一个 char).
现在让我感到惊讶的是:按 布尔值 字段排序会反转下一个字段的顺序,如果它的值为 False
.
例如 我们有 6 条记录,我们想按布尔值、姓名和姓氏排序;在 default_order
:
- 没错,John,Doe
- 是的,简,Doe
- 是的,约翰,Xoe
- 假的,约翰,死
- 假,简,死
- 假,简,谢
因此在示例中,在看板视图中我们将看到它们以这种方式排序:
- 是的,简,Doe
- 没错,John,Doe
- 是的,约翰,Xoe
- 假的,约翰,死
- 假,简,谢
- 假,简,死
如您所见,如果布尔值 True
,则记录按 boolean、name 和 姓氏,这就是我想要的。但如果它的值为 False
,则记录按 boolean、name DESC、surname DESC[=72] 排序=].
这是怎么回事?你有同样的经历吗?我如何按 boolean、char、然后另一个 char??
我用来进行奇数排序的一种方法是使用上下文来控制它。在看板视图的 window 操作中,添加一个上下文,如
<field name="context">{'do_my_special_sort': True}</field>
然后在模型上覆盖搜索方法,在上下文中检查此标志并设置排序顺序。