Djangoでは、フィールド自体の値ではなく、フィールドがNoneであるかどうかで注文することは可能ですか?Django:日付が空であるかどうかの評価による注文
私はPython sorted()
にQuerySetを送ることができますが、それを後続のフィルタリングのためのQuerySetとして保持したいと思います。ですから、私はQuerySet自体で注文することを好むでしょう。
例えば、私はtermination_dateフィールドを持っています。私はtermination_dateを持たないものを最初にソートしたいのですが、last_name、first_nameのような別のフィールドで注文したいと思います。
が、これは可能ですか私は新しいクエリセットにsorted()
を含まIDを持つ全体の新しいクエリを実行し、実行すること、その後sorted()
を使用して立ち往生していますか?私はこれを行うことができますが、オーバーヘッドを浪費せず、評価されるまで実行しないQuerySetsの美しさを利用することを望みます。
翻訳、どのように私は私のアプリはemployee
であると仮定するとジャンゴからこのSQLを取得することができ、私のモデルはEmployee
であり、それは三つのフィールド「FIRST_NAME(varchar型)」、「LAST_NAME(varchar型)」、および「TERMINATION_DATE(日)」を持っています:
SELECT
"employee_employee"."last_name",
"employee_employee"."first_name",
"employee_employee"."termination_date"
FROM "employee_employee"
ORDER BY
"employee_employee"."termination_date" IS NOT NULL,
"employee_employee"."last_name",
"employee_employee"."first_name"
驚くべきことに、私は長年Djangoに取り組んできたことがあります。本当にありがとう、完璧に働いた! – Furbeenator
@Furbeenator>これはかなり最近の追加です。私はDjango 1.7、おそらく1.8と思う。 djangoprojectチームは、Django ORMを組み合わせ可能なクエリ式で表現することにより、 '.extra()'メソッドを削除しようとしています。優れたカプセル化と移植性。 – spectras
これは理にかなっています。私は1.3よりDjangoを保守していて、更新されたすべての最新のリリースノートを見ていません。私に恥がある...: -/ – Furbeenator