Notas de lanzamiento de Django 4.2.1

3 de mayo de 2023

Django 4.2.1 resuelve un problema de seguridad con severidad «baja» y varios errores en 4.2.

CVE-2023-31047: Bypass potencial de validación al subir múltiples archivos utilizando un campo de formulario único

Subir múltiples archivos utilizando un campo de formulario único nunca ha sido soportado por forms.FileField o forms.ImageField, ya que solo se validaba el último archivo subido. Desafortunadamente, el tema subiendo_múltiples_archivos sugería lo contrario.

Para evitar la vulnerabilidad, los widgets de formulario ClearableFileInput y FileInput ahora lanzan ValueError cuando se establece el atributo HTML multiple en ellos. Para prevenir la excepción y mantener el comportamiento antiguo, establezca allow_multiple_selected en True.

Para obtener más detalles sobre el uso del nuevo atributo y el manejo de múltiples archivos a través de un campo único, consulte subiendo_múltiples_archivos.

Bugfixes

  • Se corrigió una regresión en Django 4.2 que causaba un crash del QuerySet.defer() cuando se diferían campos por nombres de atributos (#34458).

  • Se corrigió una regresión en Django 4.2 que causaba un crash de la función SearchVector con caracteres % (#34459).

  • Se corrigió una regresión en Django 4.2 que causaba agregaciones sobre consultas que utilizan agrupación explícita para agrupar contra las columnas incorrectas (#34464).

  • Se permitió, después de una regresión en Django 4.2, establecer la opción "cursor_factory" en OPTIONS en PostgreSQL (#34466).

  • Se impuso el codificado del cliente UTF-8 en PostgreSQL, después de una regresión en Django 4.2 (#34470).

  • Se han corregido las siguientes regresiones en Django 4.2:

  • Se ha corregido una regresión en Django 4.2 donde las URL traducidas del idioma por defecto desde i18n_patterns() con prefix_default_language establecido en False lanzaban errores de 404 para una solicitud con un idioma diferente (#34515).

  • Se han corregido las regresiones en Django 4.2 donde crear copias y copias profundas de HttpRequest, HttpResponse y sus subclases no funcionaban siempre correctamente (#34482, #34484).

  • Se ha corregido una regresión en Django 4.2 donde los filtros de plantilla timesince y timeuntil devolvían resultados incorrectos para un datetime con una zona horaria no UTC cuando la diferencia de tiempo es menor que 1 día (#34483).

  • Se ha corregido una regresión en Django 4.2 que causaba un crash del función SearchHeadline con psycopg 3 (#34486).

  • Se ha corregido una regresión en Django 4.2 que causaba márgenes incorrectos para ClearableFileInput en la interfaz de administración (#34506).

  • Se han corregido las regresiones en Django 4.2 donde los breadcrumbs no aparecían en las vistas de índice del sitio de administración (#34512).

  • Se ha mejorado la reducción de migraciones con squash para eliminar operaciones AddIndex, RemoveIndex, RenameIndex y CreateModel lo que permite eliminar la opción de Meta.index_together obsoleta de las migraciones históricas y utilizar en su lugar Meta.indexes (#34525).