1

私はそれが本当にばかげた問題であると信じていることに夢中になっています。配列の結果をアルファベット順にレンダリングする必要があります。

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

SQL クエリSELECT * FROM table ORDER BYl.nameを使用する必要がありますDESCか? しかし、複雑すぎて、正しくレンダリングするための簡単な条件があるような気がします...

どんな助けでも大歓迎です!ありがとう!

4

4 に答える 4

2

sorted@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>
于 2016-09-06T10:20:31.670 に答える
2

これを見てください

新しい変数をorder_line.sorted()に設定してから、新しい変数を繰り返すことができます

並べ替えについては、Odoo リファレンスをご覧ください。

于 2016-02-18T08:36:57.863 に答える
1

実際には、「.sort()」を使用できない主な理由が 1 つあります。

  • リストの「.sort()」は、リストをその場でソートし、戻りますNone

あなたができる最善の方法はsorted、渡した iterable を変更せず、ソートされた値を返す を使用することです。このような:

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

keyソートに使用する値を返す任意の関数を指定できます。

sorted使用例については、こちらを参照してください。

于 2016-02-18T11:31:01.600 に答える