Django1.8以降order_by()
フィールド名
別の回答 列のデフォルトの照合をオーバーライドする方法の例を示しました。ここで役立つクエリ式は、 Func()> 、サブクラス化または直接使用できます:
nimi_et = Func(
'nimi',
function='et_EE',
template='(%(expressions)s) COLLATE "%(function)s"')
Test.objects.order_by(nimi_et.asc())
ただし、結果のSQLは次のようになることに注意してください。
SELECT nimi FROM test ORDER BY nimi COLLATE "et_EE" ASC;
つまり、照合はORDER BY
で上書きされます SELECT
ではなく句 句。ただし、WHERE
で使用する必要がある場合 句では、Func()
を使用できます annotate()
で 。