Notas de lanzamiento Django 1.8.7

24 de noviembre de 2015

Django 1.8.7 corrige un problema de seguridad y varios errores en 1.8.6.

Adicionalmente, la versión de seis vendida por Django, django.utils.six, ha sido actualizada a la última versión (1.10.0).

Se ha corregido la posibilidad de filtrar configuraciones en el filtro de plantilla date

Si una aplicación permite a los usuarios especificar un formato no validado para fechas y pasa este formato al filtro de plantilla date, por ejemplo {{ last_updated|date:user_date_format }}, entonces un usuario malicioso podría obtener cualquier secreto en la configuración de la aplicación especificando una clave de configuración en lugar de un formato de fecha, por ejemplo "SECRET_KEY" en lugar de "j/m/Y".

Para remediar esto, la función subyacente utilizada por el filtro de plantilla date, django.utils.formats.get_format(), ahora solo permite acceder a los ajustes de formato de fecha/hora.

Bugfixes

  • Se ha corregido un crash del visor de depuración durante el cambio de horario de otoño cuando USE_TZ es False y pytz está instalado.

  • Se ha corregido una regresión en 1.8.6 que causaba que los routers de base de datos sin un método allow_migrate() se derrumbaran (#25686).

  • Se ha corregido una regresión en 1.8.6 restaurando la capacidad de utilizar objetos Manager para el argumento queryset del campo ModelChoiceField (#25683).

  • Se ha corregido una regresión en 1.8.6 que causaba que una aplicación con migraciones de South en el directorio migrations fallara (#25618).

  • Se ha corregido la posibilidad de pérdida de datos con Prefetch si to_attr está configurado en un campo ManyToManyField (#25693).

  • Se ha corregido una regresión en 1.8 haciendo que gettext() vuelva a devolver cadenas de bytestrings UTF-8 en Python 2 si la entrada es una cadena de bytestring (#25720).

  • Se han corregido la serialización de los campos DateRangeField y DateTimeRangeField (#24937).

  • Se ha corregido el lookup exacto de ArrayField (#25666).

  • Se ha corregido la actualización de los campos ForeignKey con on_delete=models.SET_NULL en Model.refresh_from_db() (#25715).

  • Se ha corregido una regresión de consulta duplicada en 1.8 en la eliminación de modelos proxied (#25685).

  • Se han encontrado los siguientes textos:

  • Se ha corregido la validación incorrecta para los campos PositiveIntegerField y PositiveSmallIntegerField en MySQL, lo que resultaba en valores mayores a 4294967295 o 65535, respectivamente, que pasaban la validación y se truncaban silenciosamente por la base de datos (#25767).