如何在 Odoo 8 中按两个字段排序?

How to order by two fields in Odoo 8?

我有一个合作伙伴记录集。现在我想按两个属性对这个记录集进行排序。其中一个属性是简单的Char,而另一个是Many2one,这是一个问题。

例子(假设变量partners是记录集):

问题是:我需要按两个字段排序,就像我上面写的那样。为此,我似乎必须使用 itemgetter,但是:

我也试过link两个排成一行,这样:

partners.sorted(key=lambda r: r.name).sorted(key=lambda r: r.country_id.id)

但它也不起作用,因为第二个 sorted 函数弄乱了第一个函数的结果。

谁能帮我解决这个问题?

partners.sorted(key=lambda p: (p.name, p.country_id.id))

我认为您需要使用 country name 进行排序。
使用您的最后一行代码并调用一次排序将解决问题:

partners.sorted(key=lambda r: (r.name, r.country_id.name))