Django 4.2.1 リリースノート¶
2023年5月3日
Django 4.2.1 では、 4.2 における深刻度 "moderate" のセキュリティの問題1件と、いくつかのバグを修正しました。
CVE-2023-31047: 1つのフォームフィールドを使用して複数のファイルをアップロードする際の検証のバイパスが可能な脆弱性¶
forms.FileField や forms.ImageField は、1つのフォームフィールドを使用して複数のファイルをアップロードすることをサポートしていないため、常に最後にアップロードされたファイルのみが検証されていました。残念ながら、複数のファイルをアップロードする トピックではそれとは違うことを示唆していました。
脆弱性を回避するために、ClearableFileInput と FileInput フォームウィジェットは、multiple HTML 属性が設定されている場合に ValueError を発生させるようになりました。例外を防ぎ、以前の動作を維持するには、 allow_multiple_selected を True に設定してください。
新しい属性の使用方法や、1つのフィールドを介して複数のファイルを処理する詳細については、複数のファイルをアップロードする を参照してください。
バグ修正¶
Django 4.2 で、属性名でフィールドを遅延読み込みするときに
QuerySet.defer()がクラッシュするリグレッションを修正しました (#34458)。SearchVector関数が%文字でクラッシュする Django 4.2 のリグレッションを修正しました (#34459).Django 4.2 で、明示的なグループ化を使用するクエリに対する集計が間違った列に対してグループ化されるリグレッションを修正しました (#34464)。
Django 4.2 のリグレッションに従い、PostgreSQL の
OPTIONSで"cursor_factory"オプションを設定することを許可しました (#34466)。Django 4.2のリグレッション (#34470) に対処し、PostgreSQL のクライアントエンコーディングを UTF-8 に強制しました。
Django 4.2 で、
i18n_patterns()がprefix_default_language引数にデフォルト言語のフォールバック言語を指定した場合に、prefix_default_languageを尊重していなかったリグレッションを修正しました (#34455).Django 4.2 で、
prefix_default_languageをFalseに設定したi18n_patterns()からデフォルト言語の URL を翻訳すると、異なる言語のリクエストに対して 404 エラーが発生するリグレッションを修正しました (#34515`)。Django 4.2 で、
HttpRequest,HttpResponseおよびそのサブクラスのコピーやディープコピーの作成が正しく動作しない場合があるリグレッションを修正しました (#34482, #34484).Django 4.2 で、
timesinceとtimeuntilのテンプレートフィルタが、時差が 1 日未満の場合に、UTC 以外のタイムゾーンを持つ datetime に対して正しくない結果を返すというリグレッションを修正しました (#34483)。SearchHeadline関数がpsycopg3でクラッシュする Django 4.2 のリグレッション (#34486) を修正しました。Django 4.2 で、admin 画面の
ClearableFileInputのマージンが正しくないリグレッションを修正しました (#34506)。Django 4.2 で、admin サイトのアプリインデックスビューにパンくずリストが表示されないリグレッションを修正しました (#34512).
マイグレーションをスカッシュする際に、
AddIndex、RemoveIndex、RenameIndex、およびCreateModelの操作を削減しました。これにより、履歴マイグレーションから非推奨のMeta.index_togetherオプションを削除し、代わりにMeta.indexesを使用できるようになりました (#34525)。