Sejak Django 1.8 order_by()
menerima tidak hanya nama bidang tetapi juga ekspresi kueri .
Dalam jawaban lain Saya memberikan contoh bagaimana Anda dapat mengganti susunan default untuk sebuah kolom. Ekspresi kueri yang berguna di sini adalah Func() , yang dapat Anda subkelas atau gunakan secara langsung:
nimi_et = Func(
'nimi',
function='et_EE',
template='(%(expressions)s) COLLATE "%(function)s"')
Test.objects.order_by(nimi_et.asc())
Namun, perhatikan bahwa SQL yang dihasilkan akan lebih seperti:
SELECT nimi FROM test ORDER BY nimi COLLATE "et_EE" ASC;
Artinya, susunan ditimpa dalam ORDER BY
klausa daripada di SELECT
ayat. Namun, jika Anda perlu menggunakannya dalam WHERE
klausa, Anda dapat menggunakan Func()
di annotate()
.