Django 1.7.2 release notes
January 2, 2015
Django 1.7.2 fixes several bugs in 1.7.1.
Additionally, Django’s vendored version of six, django.utils.six
, has been upgraded to the latest release (1.9.0).
Bugfixes
- Fixed migration’s renaming of auto-created many-to-many tables when changing
Meta.db_table
(#23630). - Fixed a migration crash when adding an explicit
id
field to a model on SQLite (#23702). - Added a warning for duplicate models when a module is reloaded. Previously a
RuntimeError
was raised every time two models clashed in the app registry. (#23621). - Prevented
flush
from loading initial data for migrated apps (#23699). - Fixed a
makemessages
regression in 1.7.1 whenSTATIC_ROOT
has the defaultNone
value (#23717). - Added GeoDjango compatibility with mysqlclient database driver.
- Fixed MySQL 5.6+ crash with
GeometryField
s in migrations (#23719). - Fixed a migration crash when removing a field that is referenced in
AlterIndexTogether
orAlterUniqueTogether
(#23614). - Updated the first day of the week in the Ukrainian locale to Monday.
- Added support for transactional spatial metadata initialization on SpatiaLite 4.1+ (#23152).
- Fixed a migration crash that prevented changing a nullable field with a default to non-nullable with the same default (#23738).
- Fixed a migration crash when adding
GeometryField
s withblank=True
on PostGIS (#23731). - Allowed usage of
DateTimeField()
asTransform.output_field
(#23420). - Fixed a migration serializing bug involving
float("nan")
andfloat("inf")
(#23770). - Fixed a regression where custom form fields having a
queryset
attribute but nolimit_choices_to
could not be used in aModelForm
(#23795). - Fixed a custom field type validation error with MySQL backend when
db_type
returnedNone
(#23761). - Fixed a migration crash when a field is renamed that is part of an
index_together
(#23859). - Fixed
squashmigrations
to respect the--no-optimize
parameter (#23799). - Made
RenameModel
reversible (#22248) - Avoided unnecessary rollbacks of migrations from other apps when migrating backwards (#23410).
- Fixed a rare query error when using deeply nested subqueries (#23605).
- Fixed a crash in migrations when deleting a field that is part of a
index/unique_together
constraint (#23794). - Fixed
django.core.files.File.__repr__()
when the file’sname
contains Unicode characters (#23888). - Added missing context to the admin’s
delete_selected
view that prevented custom site header, etc. from appearing (#23898). - Fixed a regression with dynamically generated inlines and allowed field references in the admin (#23754).
- Fixed an infinite loop bug for certain cyclic migration dependencies, and made the error message for cyclic dependencies much more helpful.
- Added missing
index_together
handling for SQLite (#23880). - Fixed a crash when
RunSQL
SQL content was collected by the schema editor, typically when usingsqlmigrate
(#23909). - Fixed a regression in
contrib.admin
add/change views which caused someModelAdmin
methods to receive the incorrectobj
value (#23934). - Fixed
runserver
crash when socket error message contained Unicode characters (#23946). - Fixed serialization of
type
when adding adeconstruct()
method (#23950). - Prevented the
django.contrib.auth.middleware.SessionAuthenticationMiddleware
from setting a"Vary: Cookie"
header on all responses (#23939). - Fixed a crash when adding
blank=True
toTextField()
on MySQL (#23920). - Fixed index creation by the migration infrastructure, particularly when dealing with PostgreSQL specific
{text|varchar}_pattern_ops
indexes (#23954). - Fixed bug in
makemigrations
that created broken migration files when dealing with multiple table inheritance and inheriting from more than one model (#23956). - Fixed a crash when a
MultiValueField
has invalid data (#23674). - Fixed a crash in the admin when using “Save as new” and also deleting a related inline (#23857).
- Always converted
related_name
to text (Unicode), since that is required on Python 3 for interpolation. Removed conversion ofrelated_name
to text in migration deconstruction (#23455 and #23982). - Enlarged the sizes of tablespaces which are created by default for testing on Oracle (the main tablespace was increased from 200M to 300M and the temporary tablespace from 100M to 150M). This was required to accommodate growth in Django’s own test suite (#23969).
- Fixed
timesince
filter translations in Korean (#23989). - Fixed the SQLite
SchemaEditor
to properly add defaults in the absence of a user specifieddefault
. For example, aCharField
withblank=True
didn’t set existing rows to an empty string which resulted in a crash when adding theNOT NULL
constraint (#23987). makemigrations
no longer prompts for a default value when addingTextField()
orCharField()
without adefault
(#23405).- Fixed a migration crash when adding
order_with_respect_to
to a table with existing rows (#23983). - Restored the
pre_migrate
signal if all apps have migrations (#23975). - Made admin system checks run for custom
AdminSite
s (#23497). - Ensured the app registry is fully populated when unpickling models. When an external script (like a queueing infrastructure) reloads pickled models, it could crash with an
AppRegistryNotReady
exception (#24007). - Added quoting to field indexes in the SQL generated by migrations to prevent a crash when the index name requires it (#24015).
- Added
datetime.time
support to migrations questioner (#23998). - Fixed admindocs crash on apps installed as eggs (#23525).
- Changed migrations autodetector to generate an
AlterModelOptions
operation instead ofDeleteModel
andCreateModel
operations when changingMeta.managed
. This prevents data loss when changingmanaged
fromFalse
toTrue
and vice versa (#24037). - Enabled the
sqlsequencereset
command on apps with migrations (#24054). - Added tablespace SQL to apps with migrations (#24051).
- Corrected
contrib.sites
default site creation in a multiple database setup (#24000). - Restored support for objects that aren’t
str
orbytes
indjango.utils.safestring.mark_for_escaping()
on Python 3. - Supported strings escaped by third-party libraries with the
__html__
convention in the template engine (#23831). - Prevented extraneous
DROP DEFAULT
SQL in migrations (#23581). - Restored the ability to use more than five levels of subqueries (#23758).
- Fixed crash when
ValidationError
is initialized with aValidationError
that is initialized with a dictionary (#24008). - Prevented a crash on apps without migrations when running
migrate --list
(#23366).