Notas de lanzamiento de Django 3.0.3

3 de febrero de 2020

Django 3.0.3 soluciona una cuestión de seguridad y varios errores en 3.0.2.

CVE-2020-7471: Inyección SQL potencial a través de StringAgg(delimiter)

La función de agregado StringAgg estaba sujeta a inyección SQL, utilizando una delimitación adecuadamente elaborada.

Bugfixes

  • Se ha corregido una regresión en Django 3.0 que causaba un error cuando se restaban DateField, DateTimeField o TimeField de una anotación Subquery() (#31133).

  • Se ha corregido una regresión en Django 3.0 donde QuerySet.values() y values_list() se caían si un conjunto de consultas contenía una agregación y una anotación Exists() (#31136).

  • Se han relajado las comprobaciones del sistema añadidas en Django 3.0 para permitir el uso de sublenguajes en la configuración LANGUAGE_CODE, cuando un lenguaje base está disponible en Django pero el sublenguaje no (#31141).

  • Se ha agregado soporte para utilizar tipos de enumeración TextChoices, IntegerChoices y Choices en plantillas (#31154).

  • Se han corregido los siguientes problemas:

  • Se ha corregido una regresión en Django 2.2 que causaba un crash de ArrayAgg y StringAgg con el argumento filter cuando se utilizaban en una Subquery (#31097).

  • Se ha corregido una regresión en Django 2.2.7 que causaba que get_FOO_display() funcionara incorrectamente cuando se sobreescribían las elecciones heredadas (#31124).

  • Se ha corregido una regresión en Django 3.0 que causaba un crash de QuerySet.prefetch_related() para GenericForeignKey con una clave foránea personalizada de ContentType (#31190).