August 13, 2013
This is Django 1.5.2, a bugfix and security release for Django 1.5.
Django relies on user input in some cases (e.g.
i18n) to redirect the user to an “on success” URL.
The security checks for these redirects (namely
django.utils.http.is_safe_url()) didn’t check if the scheme is
and as such allowed
is_safe_url() to provide safe redirect targets and put such a
URL into a link, they could suffer from a XSS attack. This bug doesn’t affect
Django currently, since we only put this URL into the
URLField is used in Django 1.5, it displays the
current value of the field and a link to the target on the admin change page.
The display routine of this widget was flawed and allowed for XSS.
Fixed a crash with
(#19607) as well as some
pickle regressions with
(#20157 and #20257).
Fixed a regression in
django.contrib.gis in the Google Map output on
Python 3 (#20773).
DjangoTestSuiteRunner.setup_databases properly handle aliases for
the default database (#19940) and prevented
attempting to tear down aliases (#20681).
get_many() method on Python 3 (#20722).
django.contrib.humanize translation syntax errors. Affected
languages: Mexican Spanish, Mongolian, Romanian, Turkish (#20695).
Added support for wheel packages (#19252).
The CSRF token now rotates when a user logs in.
Some Python 3 compatibility fixes including #20212 and #20025.
Fixed some rare cases where
exceptions recursed infinitely (#20278).
makemessages no longer crashes with
geojson detection with SpatiaLite.
assertContains() once again works with
binary content (#20237).
ManyToManyField if it has a Unicode
Ensured that the WSGI request’s path is correctly based on the
SCRIPT_NAME environment variable or the
setting, regardless of whether or not either has a trailing slash (#20169).
Fixed an obscure bug with the
decorator. If you hit an
AttributeError: 'Settings' object has no attribute
'_original_allowed_hosts' exception, it’s probably fixed (#20636).