==========================
Django 1.7.1 release notes
==========================

*Under development*

Django 1.7.1 fixes several bugs in 1.7.

Bugfixes
========

* Allowed related many-to-many fields to be referenced in the admin
  (:ticket:`23604`).

* Added a more helpful error message if you try to migrate an app without first
  creating the ``contenttypes`` table (:ticket:`22411`).

* Modified migrations dependency algorithm to avoid possible infinite recursion.

* Fixed a ``UnicodeDecodeError`` when the ``flush`` error message contained
  Unicode characters (:ticket:`22882`).

* Reinstated missing ``CHECK`` SQL clauses which were omitted on some backends
  when not using migrations (:ticket:`23416`).

* Fixed serialization of ``type`` objects in migrations (:ticket:`22951`).

* Allowed inline and hidden references to admin fields (:ticket:`23431`).

* The ``@deconstructible`` decorator now fails with a ``ValueError`` if the
  decorated object cannot automatically be imported (:ticket:`23418`).

* Fixed a typo in an ``inlineformset_factory()`` error message that caused a
  crash (:ticket:`23451`).

* Restored the ability to use :setting:`ABSOLUTE_URL_OVERRIDES` with the
  ``'auth.User'`` model (:ticket:`11775`). As a side effect, the setting now
  adds a ``get_absolute_url()`` method to any model that appears in
  ``ABSOLUTE_URL_OVERRIDES`` but doesn't define ``get_absolute_url()``.

* Avoided masking some `ImportError` exceptions during application loading
  (:ticket:`22920`).

* Empty ``index_together`` or ``unique_together`` model options no longer
  results in infinite migrations (:ticket:`23452`).

* Fixed crash in ``contrib.sitemaps`` if ``lastmod`` returned a ``date`` rather
  than a ``datetime`` (:ticket:`23403`).

* Allowed migrations to work with ``app_label``\s that have the same last
  part (e.g. ``django.contrib.auth`` and ``vendor.auth``) (:ticket:`23483`).

* Restored the ability to deepcopy ``F`` objects (:ticket:`23492`).

* Formats for Welsh (``cy``) and several Chinese locales (``zh_CN``,
  ``zh_Hans``, ``zh_Hant`` and ``zh_TW``) have been added. Formats for
  Macedonian have been fixed (trailing dot removed, :ticket:`23532`).

* Added quoting of constraint names in the SQL generated by migrations to
  prevent crash with uppercase characters in the name (:ticket:`23065`).

* Fixed renaming of models with a self-referential many-to-many field
  (``ManyToManyField('self')``) (:ticket:`23503`).

* Added the :meth:`~django.contrib.admin.InlineModelAdmin.get_extra()`,
  :meth:`~django.contrib.admin.InlineModelAdmin.get_max_num()`, and
  :meth:`~django.contrib.admin.InlineModelAdmin.get_min_num()` hooks to
  :class:`~django.contrib.contenttypes.admin.GenericInlineModelAdmin`
  (:ticket:`23539`).

* Made ``migrations.RunSQL`` no longer require percent sign escaping. This is
  now consistent with ``cursor.execute()`` (:ticket:`23426`).

* Made the :setting:`SERIALIZE <TEST_SERIALIZE>` entry in the
  :setting:`TEST <DATABASE-TEST>` dictionary usable (:ticket:`23421`).

* Fixed bug in migrations that prevented foreign key constraints to unmanaged
  models with a custom primary key (:ticket:`23415`).

* Added ``SchemaEditor`` for MySQL GIS backend so that spatial indexes will be
  created for apps with migrations (:ticket:`23538`).

* Added ``SchemaEditor`` for Oracle GIS backend so that spatial metadata and
  indexes will be created for apps with migrations (:ticket:`23537`).

* Coerced the ``related_name`` model field option to unicode during migration
  generation to generate migrations that work with both Python 2 and 3
  (:ticket:`23455`).

* Fixed ``MigrationWriter`` to handle builtin types without imports
  (:ticket:`23560`).
