Django 1.8.7 release notes#
November 24, 2015
Django 1.8.7 fixes a security issue and several bugs in 1.8.6.
Additionally, Django’s vendored version of six, django.utils.six, has
been upgraded to the latest release (1.10.0).
Fixed settings leak possibility in date template filter#
If an application allows users to specify an unvalidated format for dates and
passes this format to the date filter, e.g.
{{ last_updated|date:user_date_format }}, then a malicious user could
obtain any secret in the application’s settings by specifying a settings key
instead of a date format. e.g. "SECRET_KEY" instead of "j/m/Y".
To remedy this, the underlying function used by the date template filter,
django.utils.formats.get_format(), now only allows accessing the date/time
formatting settings.
Bugfixes#
Fixed a crash of the debug view during the autumn DST change when
USE_TZisFalseandpytzis installed.Fixed a regression in 1.8.6 that caused database routers without an
allow_migrate()method to crash (#25686).Fixed a regression in 1.8.6 by restoring the ability to use
Managerobjects for thequerysetargument ofModelChoiceField(#25683).Fixed a regression in 1.8.6 that caused an application with South migrations in the
migrationsdirectory to fail (#25618).Fixed a data loss possibility with
Prefetchifto_attris set to aManyToManyField(#25693).Fixed a regression in 1.8 by making
gettext()once again return UTF-8 bytestrings on Python 2 if the input is a bytestring (#25720).Fixed serialization of
DateRangeFieldandDateTimeRangeField(#24937).Fixed the exact lookup of
ArrayField(#25666).Fixed
Model.refresh_from_db()updating ofForeignKeyfields withon_delete=models.SET_NULL(#25715).Fixed a duplicate query regression in 1.8 on proxied model deletion (#25685).
Fixed
set_FOO_order()crash when theForeignKeyof a model withorder_with_respect_toreferences a model with aOneToOneFieldprimary key (#25786).Fixed incorrect validation for
PositiveIntegerFieldandPositiveSmallIntegerFieldon MySQL resulting in values greater than 4294967295 or 65535, respectively, passing validation and being silently truncated by the database (#25767).