Xml 按字母顺序排列的odoo Qweb报告行

Xml 按字母顺序排列的odoo Qweb报告行,xml,report,sql-order-by,odoo,qweb,Xml,Report,Sql Order By,Odoo,Qweb,我为我认为这是一件非常愚蠢的事情而发疯。 我需要按字母顺序呈现数组的结果: <tr t-foreach="o.order_line" t-as="l"> <td> <span t-field="l.name"/> </td> 我是否应该使用SQL查询SELECT*FROM table ORDER BYl.nameD

我为我认为这是一件非常愚蠢的事情而发疯。 我需要按字母顺序呈现数组的结果:

 <tr t-foreach="o.order_line" t-as="l"> 
                    <td>
                       <span t-field="l.name"/>
                    </td>

我是否应该使用SQL查询
SELECT*FROM table ORDER BY
l.name
DESC
? 但它太复杂了,我感觉有一个简单的条件来正确渲染它

非常感谢您的帮助!谢谢

看一看

可以将新变量设置为order_line.sorted(),然后对新变量进行迭代

有关排序,请参见

可以将新变量设置为order_line.sorted(),然后对新变量进行迭代

要进行排序,请查看

实际上,由于一个主要原因,您不能使用“.sort()”:

  • 列表上的“.sort()”对列表进行适当排序,返回
    None
最好使用
排序
,它不会修改传递给它的iterable,而是返回它的排序值。像这样:

 <tr t-foreach="sorted(o.order_line, key=lambda x: x.get('A_FIELD_TO_SORT_UPON')" t-as="l"> 

键可以是返回用于排序的值的任何函数

请参阅有关
sorted
用法的更多示例。

实际上,由于一个主要原因,您不能使用“.sort()”:

  • 列表上的“.sort()”对列表进行适当排序,返回
    None
最好使用
排序
,它不会修改传递给它的iterable,而是返回它的排序值。像这样:

 <tr t-foreach="sorted(o.order_line, key=lambda x: x.get('A_FIELD_TO_SORT_UPON')" t-as="l"> 

键可以是返回用于排序的值的任何函数


请参阅更多有关
sorted
用法的示例。

我刚刚遇到了这个问题,正如@Alessandro Ruffolo所写,我能够使用
sorted
函数解决它。您必须向该函数传递正确的参数,在您的情况下,它将是:

<tr t-foreach="o.order_line.sorted(key=lambda r: r.name, reverse=True)" t-as="l"> 
    <td>
        <span t-field="l.name"/>
    </td>
    ...
</tr>

...

我刚刚遇到了这个问题,正如@Alessandro Ruffolo所写的那样,我能够用排序的
函数解决它。您必须向该函数传递正确的参数,在您的情况下,它将是:

<tr t-foreach="o.order_line.sorted(key=lambda r: r.name, reverse=True)" t-as="l"> 
    <td>
        <span t-field="l.name"/>
    </td>
    ...
</tr>

...

如果您想对Odoo报告中的项目进行排序,这将起作用

<tr t-foreach="get_room_used_detail(data['form']['date_start'],data['form']['date_end']).sorted(key=lambda x: x.checkin)" t-as="info">

如果您想对Odoo报告中的项目进行排序,这将起作用

<tr t-foreach="get_room_used_detail(data['form']['date_start'],data['form']['date_end']).sorted(key=lambda x: x.checkin)" t-as="info">


谢谢亚历山德罗,你能告诉我应该把它放在哪里吗。。。。给我一个错误:“'sale.order.line'对象在求值'o.order\u line.sort()'时没有属性'sort'”“求值时谢谢Alessandro,你能告诉我应该把它放在哪里吗……给我一个错误:“'sale.order.line'对象在求值'o.order\u line.sort()'时没有属性'sort'”评估时