# Django 5.0.9.dev20240806133106 ドキュメント

# Django 4.2.1 リリースノート

2023年5月3日

Django 4.2.1 は、4.2 の深刻度 "low" のセキュリティ問題を修正しました。

## 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` 関数が `psycopg` 3でクラッシュする 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)。