したがって、クエリセットの追加フィールドを使用して、選択したクエリに列を追加できます。これをデフォルトの順序として設定できます。私はこれまでこれを達成することができました:追加のフィールドを作成し、それをデフォルトの順序として設定しました。
qs = qs.extra(select={'natname':"concat('0', nat, name)"}, order_by=['natname'])
これで、管理インターフェースに他のフィールドが{name, nat, location, space, ....}あり、テーブルの結果natnameはページが読み込まれたときに並べ替えられます...完璧です。
しかし、今はnameフィールドでの注文を有効にしたいのですが、で注文するのではなく、で注文しnameたいと思いnatnameます。これは可能ですか?
したがって、余分なフィールドですが、順序付けに関しては、どういうわけか列をnatnameバインドしたいと思います。namenatname
今のところ、そうすると、。qs.query.__str__()を使用してSQLクエリを取得しますorder by natname。列をクリックするとname、順序がに変わりますがname、この特別な場合のために、で順序付けてnatnameください。これは可能ですか?
Djangoがこれらの自動管理ページのヘッダーとビューをどのように生成するかを見てきましたが、このモデルので定義され<django-installation-path>/contrib/adminたセットのみを参照しています。そこで変更を加えると、管理ビューで表示される列が変更されます。list_displayModelAdmin
少し紛らわしいように聞こえるかもしれません。特に詳しい情報が必要な場合は、お気軽にお問い合わせください。
ありがとう。