Python Webアプリケーションフレームワーク「Django」開発チームは現地時間12月4日、公式Webサイトで次期バージョン「Django 5.0」のリリースを発表した。
新バージョンでは、Python 3.10、3.11、3.12をサポート。新機能としては、リストフィルターが適用された数(Facet:ファセット)が表示される管理者用「Facet filter」機能やフォームフィールドレンダリング用に簡略化されたテンプレートシステムが追加される。データベース関連では、データベースが計算したデフォルト値をモデルフィールド(models.pyに定義するデータベース操作設定)に設定できる「Field.db_defaultパラメーター」、データベースで生成された列を作成できる「データベース生成モデルフィールド」などが追加。ライブラリ「django.contrib」関連では、管理系の「django.contrib.admin」「django.contrib.auth」「django.contrib.contenttypes」などが強化されている。おもな新機能・改善点は以下の通り。
・管理者のファセットフィルター機能の追加。管理画面内の「管理者の変更リスト」ページの右サイドに表示されるリストフィルターが適用された数を表示する。
・Djangoフォームフィールド関連要素のレンダリングを簡素化するテンプレート機能を追加。新規にフィールドグループ概念と共にフィールドグループテンプレートを導入、as_field_group()でテンプレートによりフォームフィールドの関連要素のレンダリングを大幅に簡素化。
・モデルフィールドにデータベースが計算したデフォルト値の設定を可能とする新規のField.db_defaultパラメーターを追加。
・データベース生成モデルフィールドにおいて新規にデータベースで生成された列を作成することが可能なGeneratedFieldを追加。
・「django.contrib.admin」で新規にログエントリされたサイトリストクエリセットのカスタマイズが可能なAdminSite.get_log_entries()メソッドの追加。
・「django.contrib.auth」でログインしているユーザーを返すHttpRequest.auser()非同期メソッドとユーザーパスワードの非同期チェックが可能になるdjango.contrib.auth.hashers.acheck_password()非同期関数、AbstractBaseUser.acheck_passwordメソッド()の追加。
・Python 3.12以降でテストを表示する新オプション「test --durations」の追加。
上記以外のアップデートの詳細情報は、リリースノートで確認できる。5.0リリース後は、バージョン4.2はメインストリームサポートを終了。バージョン4.1は、延長サポートが終了、アップグレードが推奨されている。