3.2.txt 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. ============================================
  2. Django 3.2 release notes - UNDER DEVELOPMENT
  3. ============================================
  4. *Expected April 2021*
  5. Welcome to Django 3.2!
  6. These release notes cover the :ref:`new features <whats-new-3.2>`, as well as
  7. some :ref:`backwards incompatible changes <backwards-incompatible-3.2>` you'll
  8. want to be aware of when upgrading from Django 3.1 or earlier. We've
  9. :ref:`begun the deprecation process for some features
  10. <deprecated-features-3.2>`.
  11. See the :doc:`/howto/upgrade-version` guide if you're updating an existing
  12. project.
  13. Django 3.2 is designated as a :term:`long-term support release
  14. <Long-term support release>`. It will receive security updates for at least
  15. three years after its release. Support for the previous LTS, Django 2.2, will
  16. end in April 2022.
  17. Python compatibility
  18. ====================
  19. Django 3.2 supports Python 3.6, 3.7, and 3.8. We **highly recommend** and only
  20. officially support the latest release of each series.
  21. .. _whats-new-3.2:
  22. What's new in Django 3.2
  23. ========================
  24. Minor features
  25. --------------
  26. :mod:`django.contrib.admin`
  27. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  28. * ...
  29. :mod:`django.contrib.admindocs`
  30. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  31. * ...
  32. :mod:`django.contrib.auth`
  33. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  34. * The default iteration count for the PBKDF2 password hasher is increased from
  35. 216,000 to 260,000.
  36. :mod:`django.contrib.contenttypes`
  37. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  38. * ...
  39. :mod:`django.contrib.gis`
  40. ~~~~~~~~~~~~~~~~~~~~~~~~~
  41. * ...
  42. :mod:`django.contrib.messages`
  43. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  44. * The :class:`~django.contrib.postgres.operations.CreateExtension` operation
  45. now checks that the extension already exists in the database and skips the
  46. migration if so.
  47. :mod:`django.contrib.postgres`
  48. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  49. * ...
  50. :mod:`django.contrib.redirects`
  51. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  52. * ...
  53. :mod:`django.contrib.sessions`
  54. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  55. * ...
  56. :mod:`django.contrib.sitemaps`
  57. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  58. * ...
  59. :mod:`django.contrib.sites`
  60. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  61. * ...
  62. :mod:`django.contrib.staticfiles`
  63. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  64. * ...
  65. :mod:`django.contrib.syndication`
  66. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  67. * ...
  68. Cache
  69. ~~~~~
  70. * ...
  71. CSRF
  72. ~~~~
  73. * ...
  74. Email
  75. ~~~~~
  76. * ...
  77. Error Reporting
  78. ~~~~~~~~~~~~~~~
  79. * ...
  80. File Storage
  81. ~~~~~~~~~~~~
  82. * ...
  83. File Uploads
  84. ~~~~~~~~~~~~
  85. * ...
  86. Forms
  87. ~~~~~
  88. * ...
  89. Generic Views
  90. ~~~~~~~~~~~~~
  91. * ...
  92. Internationalization
  93. ~~~~~~~~~~~~~~~~~~~~
  94. * ...
  95. Logging
  96. ~~~~~~~
  97. * ...
  98. Management Commands
  99. ~~~~~~~~~~~~~~~~~~~
  100. * :djadmin:`loaddata` now supports fixtures stored in XZ archives (``.xz``) and
  101. LZMA archives (``.lzma``).
  102. * :djadmin:`makemigrations` can now be called without an active database
  103. connection. In that case, check for a consistent migration history is
  104. skipped.
  105. * :attr:`.BaseCommand.requires_system_checks` now supports specifying a list of
  106. tags. System checks registered in the chosen tags will be checked for errors
  107. prior to executing the command. In previous versions, either all or none
  108. of the system checks were performed.
  109. Migrations
  110. ~~~~~~~~~~
  111. * The new ``Operation.migration_name_fragment`` property allows providing a
  112. filename fragment that will be used to name a migration containing only that
  113. operation.
  114. Models
  115. ~~~~~~
  116. * The new ``no_key`` parameter for :meth:`.QuerySet.select_for_update()`,
  117. supported on PostgreSQL, allows acquiring weaker locks that don't block the
  118. creation of rows that reference locked rows through a foreign key.
  119. * :class:`When() <django.db.models.expressions.When>` expression now allows
  120. using the ``condition`` argument with ``lookups``.
  121. Requests and Responses
  122. ~~~~~~~~~~~~~~~~~~~~~~
  123. * ...
  124. Security
  125. ~~~~~~~~
  126. * ...
  127. Serialization
  128. ~~~~~~~~~~~~~
  129. * ...
  130. Signals
  131. ~~~~~~~
  132. * ...
  133. Templates
  134. ~~~~~~~~~
  135. * ...
  136. Tests
  137. ~~~~~
  138. * Objects assigned to class attributes in :meth:`.TestCase.setUpTestData` are
  139. now isolated for each test method. Such objects are now required to support
  140. creating deep copies with :py:func:`copy.deepcopy`. Assigning objects which
  141. don't support ``deepcopy()`` is deprecated and will be removed in Django 4.1.
  142. * :class:`~django.test.Client` now preserves the request query string when
  143. following 307 and 308 redirects.
  144. URLs
  145. ~~~~
  146. * ...
  147. Utilities
  148. ~~~~~~~~~
  149. * ...
  150. Validators
  151. ~~~~~~~~~~
  152. * ...
  153. .. _backwards-incompatible-3.2:
  154. Backwards incompatible changes in 3.2
  155. =====================================
  156. Database backend API
  157. --------------------
  158. This section describes changes that may be needed in third-party database
  159. backends.
  160. * ...
  161. :mod:`django.contrib.gis`
  162. -------------------------
  163. * Support for PostGIS 2.2 is removed.
  164. Dropped support for PostgreSQL 9.5
  165. ----------------------------------
  166. Upstream support for PostgreSQL 9.5 ends in February 2021. Django 3.2 supports
  167. PostgreSQL 9.6 and higher.
  168. Dropped support for MySQL 5.6
  169. -----------------------------
  170. The end of upstream support for MySQL 5.6 is April 2021. Django 3.2 supports
  171. MySQL 5.7 and higher.
  172. Miscellaneous
  173. -------------
  174. * The undocumented ``SpatiaLiteOperations.proj4_version()`` method is renamed
  175. to ``proj_version()``.
  176. * Minified JavaScript files are no longer included with the admin. If you
  177. require these files to be minified, consider using a third party app or
  178. external build tool. The minified vendored JavaScript files packaged with the
  179. admin (e.g. :ref:`jquery.min.js <contrib-admin-jquery>`) are still included.
  180. * :attr:`.ModelAdmin.prepopulated_fields` no longer strips English stop words,
  181. such as ``'a'`` or ``'an'``.
  182. .. _deprecated-features-3.2:
  183. Features deprecated in 3.2
  184. ==========================
  185. Miscellaneous
  186. -------------
  187. * Assigning objects which don't support creating deep copies with
  188. :py:func:`copy.deepcopy` to class attributes in
  189. :meth:`.TestCase.setUpTestData` is deprecated.
  190. * Using a boolean value in :attr:`.BaseCommand.requires_system_checks` is
  191. deprecated. Use ``'__all__'`` instead of ``True``, and ``[]`` (an empty list)
  192. instead of ``False``.