1. ==========================
    
  2. Django 1.7.1 release notes
    
  3. ==========================
    
  4. 
    
  5. *October 22, 2014*
    
  6. 
    
  7. Django 1.7.1 fixes several bugs in 1.7.
    
  8. 
    
  9. Bugfixes
    
  10. ========
    
  11. 
    
  12. * Allowed related many-to-many fields to be referenced in the admin
    
  13.   (:ticket:`23604`).
    
  14. 
    
  15. * Added a more helpful error message if you try to migrate an app without first
    
  16.   creating the ``contenttypes`` table (:ticket:`22411`).
    
  17. 
    
  18. * Modified migrations dependency algorithm to avoid possible infinite recursion.
    
  19. 
    
  20. * Fixed a ``UnicodeDecodeError`` when the ``flush`` error message contained
    
  21.   Unicode characters (:ticket:`22882`).
    
  22. 
    
  23. * Reinstated missing ``CHECK`` SQL clauses which were omitted on some backends
    
  24.   when not using migrations (:ticket:`23416`).
    
  25. 
    
  26. * Fixed serialization of ``type`` objects in migrations (:ticket:`22951`).
    
  27. 
    
  28. * Allowed inline and hidden references to admin fields (:ticket:`23431`).
    
  29. 
    
  30. * The ``@deconstructible`` decorator now fails with a ``ValueError`` if the
    
  31.   decorated object cannot automatically be imported (:ticket:`23418`).
    
  32. 
    
  33. * Fixed a typo in an ``inlineformset_factory()`` error message that caused a
    
  34.   crash (:ticket:`23451`).
    
  35. 
    
  36. * Restored the ability to use :setting:`ABSOLUTE_URL_OVERRIDES` with the
    
  37.   ``'auth.User'`` model (:ticket:`11775`). As a side effect, the setting now
    
  38.   adds a ``get_absolute_url()`` method to any model that appears in
    
  39.   ``ABSOLUTE_URL_OVERRIDES`` but doesn't define ``get_absolute_url()``.
    
  40. 
    
  41. * Avoided masking some ``ImportError`` exceptions during application loading
    
  42.   (:ticket:`22920`).
    
  43. 
    
  44. * Empty ``index_together`` or ``unique_together`` model options no longer
    
  45.   results in infinite migrations (:ticket:`23452`).
    
  46. 
    
  47. * Fixed crash in ``contrib.sitemaps`` if ``lastmod`` returned a ``date`` rather
    
  48.   than a ``datetime`` (:ticket:`23403`).
    
  49. 
    
  50. * Allowed migrations to work with ``app_label``\s that have the same last
    
  51.   part (e.g. ``django.contrib.auth`` and ``vendor.auth``) (:ticket:`23483`).
    
  52. 
    
  53. * Restored the ability to deepcopy ``F`` objects (:ticket:`23492`).
    
  54. 
    
  55. * Formats for Welsh (``cy``) and several Chinese locales (``zh_CN``,
    
  56.   ``zh_Hans``, ``zh_Hant`` and ``zh_TW``) have been added. Formats for
    
  57.   Macedonian have been fixed (trailing dot removed, :ticket:`23532`).
    
  58. 
    
  59. * Added quoting of constraint names in the SQL generated by migrations to
    
  60.   prevent crash with uppercase characters in the name (:ticket:`23065`).
    
  61. 
    
  62. * Fixed renaming of models with a self-referential many-to-many field
    
  63.   (``ManyToManyField('self')``) (:ticket:`23503`).
    
  64. 
    
  65. * Added the :meth:`~django.contrib.admin.InlineModelAdmin.get_extra()`,
    
  66.   :meth:`~django.contrib.admin.InlineModelAdmin.get_max_num()`, and
    
  67.   :meth:`~django.contrib.admin.InlineModelAdmin.get_min_num()` hooks to
    
  68.   :class:`~django.contrib.contenttypes.admin.GenericInlineModelAdmin`
    
  69.   (:ticket:`23539`).
    
  70. 
    
  71. * Made ``migrations.RunSQL`` no longer require percent sign escaping. This is
    
  72.   now consistent with ``cursor.execute()`` (:ticket:`23426`).
    
  73. 
    
  74. * Made the :setting:`SERIALIZE <TEST_SERIALIZE>` entry in the
    
  75.   :setting:`TEST <DATABASE-TEST>` dictionary usable (:ticket:`23421`).
    
  76. 
    
  77. * Fixed bug in migrations that prevented foreign key constraints to unmanaged
    
  78.   models with a custom primary key (:ticket:`23415`).
    
  79. 
    
  80. * Added ``SchemaEditor`` for MySQL GIS backend so that spatial indexes will be
    
  81.   created for apps with migrations (:ticket:`23538`).
    
  82. 
    
  83. * Added ``SchemaEditor`` for Oracle GIS backend so that spatial metadata and
    
  84.   indexes will be created for apps with migrations (:ticket:`23537`).
    
  85. 
    
  86. * Coerced the ``related_name`` model field option to Unicode during migration
    
  87.   generation to generate migrations that work with both Python 2 and 3
    
  88.   (:ticket:`23455`).
    
  89. 
    
  90. * Fixed ``MigrationWriter`` to handle builtin types without imports
    
  91.   (:ticket:`23560`).
    
  92. 
    
  93. * Fixed ``deepcopy`` on ``ErrorList`` (:ticket:`23594`).
    
  94. 
    
  95. * Made the :mod:`~django.contrib.admindocs` view to browse view details check
    
  96.   if the view specified in the URL exists in the URLconf. Previously it was
    
  97.   possible to import arbitrary packages from the Python path. This was not
    
  98.   considered a security issue because ``admindocs`` is only accessible to staff
    
  99.   users (:ticket:`23601`).
    
  100. 
    
  101. * Fixed ``UnicodeDecodeError`` crash in ``AdminEmailHandler`` with non-ASCII
    
  102.   characters in the request (:ticket:`23593`).
    
  103. 
    
  104. * Fixed missing ``get_or_create`` and ``update_or_create`` on related managers
    
  105.   causing ``IntegrityError`` (:ticket:`23611`).
    
  106. 
    
  107. * Made :func:`~django.utils.http.urlsafe_base64_decode` return the proper
    
  108.   type (bytestring) on Python 3 (:ticket:`23333`).
    
  109. 
    
  110. * :djadmin:`makemigrations` can now serialize timezone-aware values
    
  111.   (:ticket:`23365`).
    
  112. 
    
  113. * Added a prompt to the migrations questioner when removing the null constraint
    
  114.   from a field to prevent an IntegrityError on existing NULL rows
    
  115.   (:ticket:`23609`).
    
  116. 
    
  117. * Fixed generic relations in ``ModelAdmin.list_filter`` (:ticket:`23616`).
    
  118. 
    
  119. * Restored RFC compliance for the SMTP backend on Python 3 (:ticket:`23063`).
    
  120. 
    
  121. * Fixed a crash while parsing cookies containing invalid content
    
  122.   (:ticket:`23638`).
    
  123. 
    
  124. * The system check framework now raises error **models.E020** when the
    
  125.   class method ``Model.check()`` is unreachable (:ticket:`23615`).
    
  126. 
    
  127. * Made the Oracle test database creation drop the test user in the event of an
    
  128.   unclean exit of a previous test run (:ticket:`23649`).
    
  129. 
    
  130. * Fixed :djadmin:`makemigrations` to detect changes to
    
  131.   :attr:`Meta.db_table <django.db.models.Options.db_table>` (:ticket:`23629`).
    
  132. 
    
  133. * Fixed a regression when feeding the Django test client with an empty data
    
  134.   string (:ticket:`21740`).
    
  135. 
    
  136. * Fixed a regression in :djadmin:`makemessages` where static files were
    
  137.   unexpectedly ignored (:ticket:`23583`).