1.7.1.txt 5.5 KB

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