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つのフィールドを介して複数のファイルを処理する詳細については、複数のファイルをアップロードする を参照してください。
Bugfixes¶
- 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)。