2.1.txt 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. ============================================
  2. Django 2.1 release notes - UNDER DEVELOPMENT
  3. ============================================
  4. Welcome to Django 2.1!
  5. These release notes cover the :ref:`new features <whats-new-2.1>`, as well as
  6. some :ref:`backwards incompatible changes <backwards-incompatible-2.1>` you'll
  7. want to be aware of when upgrading from Django 2.0 or earlier. We've
  8. :ref:`dropped some features<removed-features-2.1>` that have reached the end of
  9. their deprecation cycle, and we've :ref:`begun the deprecation process for some
  10. features <deprecated-features-2.1>`.
  11. See the :doc:`/howto/upgrade-version` guide if you're updating an existing
  12. project.
  13. Python compatibility
  14. ====================
  15. Django 2.1 supports Python 3.5, 3.6, and 3.7. Django 2.0 is the last version to
  16. support Python 3.4. We **highly recommend** and only officially support the
  17. latest release of each series.
  18. .. _whats-new-2.1:
  19. What's new in Django 2.1
  20. ========================
  21. Minor features
  22. --------------
  23. :mod:`django.contrib.admin`
  24. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  25. * :attr:`.ModelAdmin.search_fields` now accepts any lookup such as
  26. ``field__exact``.
  27. * jQuery is upgraded from version 2.2.3 to 3.2.1.
  28. :mod:`django.contrib.admindocs`
  29. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  30. * ...
  31. :mod:`django.contrib.auth`
  32. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  33. * :djadmin:`createsuperuser` now gives a prompt to allow bypassing the
  34. :setting:`AUTH_PASSWORD_VALIDATORS` checks.
  35. * :class:`~django.contrib.auth.forms.UserCreationForm` and
  36. :class:`~django.contrib.auth.forms.UserChangeForm` no longer need to be
  37. rewritten for a custom user model.
  38. :mod:`django.contrib.contenttypes`
  39. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  40. * ...
  41. :mod:`django.contrib.gis`
  42. ~~~~~~~~~~~~~~~~~~~~~~~~~
  43. * ...
  44. :mod:`django.contrib.messages`
  45. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  46. * ...
  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. Database backends
  75. ~~~~~~~~~~~~~~~~~
  76. * ...
  77. Email
  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. Management Commands
  96. ~~~~~~~~~~~~~~~~~~~
  97. * ...
  98. Migrations
  99. ~~~~~~~~~~
  100. * Added support for serialization of ``functools.partialmethod`` objects.
  101. Models
  102. ~~~~~~
  103. * Models can now use ``__init_subclass__()`` from :pep:`487`.
  104. * A ``BinaryField`` may now be set to ``editable=True`` if you wish to include
  105. it in model forms.
  106. Requests and Responses
  107. ~~~~~~~~~~~~~~~~~~~~~~
  108. * Added :meth:`.HttpRequest.get_full_path_info`.
  109. Serialization
  110. ~~~~~~~~~~~~~
  111. * ...
  112. Signals
  113. ~~~~~~~
  114. * ...
  115. Templates
  116. ~~~~~~~~~
  117. * ...
  118. Tests
  119. ~~~~~
  120. * ...
  121. URLs
  122. ~~~~
  123. * ...
  124. Validators
  125. ~~~~~~~~~~
  126. * ...
  127. .. _backwards-incompatible-2.1:
  128. Backwards incompatible changes in 2.1
  129. =====================================
  130. Database backend API
  131. --------------------
  132. * To adhere to :pep:`249`, exceptions where a database doesn't support a
  133. feature are changed from :exc:`NotImplementedError` to
  134. :exc:`django.db.NotSupportedError`.
  135. :mod:`django.contrib.gis`
  136. -------------------------
  137. * Support for SpatiaLite 4.0 is removed.
  138. Dropped support for MySQL 5.5
  139. -----------------------------
  140. The end of upstream support for MySQL 5.5 is December 2018. Django 2.1 supports
  141. MySQL 5.6 and higher.
  142. Dropped support for PostgreSQL 9.3
  143. ----------------------------------
  144. The end of upstream support for PostgreSQL 9.3 is September 2018. Django 2.1
  145. supports PostgreSQL 9.4 and higher.
  146. Miscellaneous
  147. -------------
  148. * The minimum supported version of ``mysqlclient`` is increased from 1.3.3 to
  149. 1.3.7.
  150. * The date format of ``Set-Cookie``'s ``Expires`` directive is changed to
  151. follow :rfc:`7231#section-7.1.1.1` instead of Netscape's cookie standard.
  152. Hyphens present in dates like ``Tue, 25-Dec-2018 22:26:13 GMT`` are removed.
  153. This change should be merely cosmetic except perhaps for antiquated browsers
  154. that don't parse the new format.
  155. .. _deprecated-features-2.1:
  156. Features deprecated in 2.1
  157. ==========================
  158. Miscellaneous
  159. -------------
  160. * The ``ForceRHR`` GIS function is deprecated in favor of the new
  161. :class:`~django.contrib.gis.db.models.functions.ForcePolygonCW` function.
  162. * ``django.utils.http.cookie_date()`` is deprecated in favor of
  163. :func:`~django.utils.http.http_date`, which follows the format of the latest
  164. RFC.
  165. .. _removed-features-2.1:
  166. Features removed in 2.1
  167. =======================
  168. These features have reached the end of their deprecation cycle and are removed
  169. in Django 2.1. See :ref:`deprecated-features-1.11` for details, including how
  170. to remove usage of these features.
  171. in Django 2.1. See :ref:`deprecated-features-1.11` and for details, including
  172. how to remove usage of these features.
  173. * ``contrib.auth.views.login()``, ``logout()``, ``password_change()``,
  174. ``password_change_done()``, ``password_reset()``, ``password_reset_done()``,
  175. ``password_reset_confirm()``, and ``password_reset_complete()`` are removed.
  176. * The ``extra_context`` parameter of ``contrib.auth.views.logout_then_login()``
  177. is removed.
  178. * ``django.test.runner.setup_databases()`` is removed.
  179. * ``django.utils.translation.string_concat()`` is removed.
  180. * ``django.core.cache.backends.memcached.PyLibMCCache`` no longer supports
  181. passing ``pylibmc`` behavior settings as top-level attributes of ``OPTIONS``.
  182. * The ``host`` parameter of ``django.utils.http.is_safe_url()`` is removed.
  183. * Silencing of exceptions raised while rendering the ``{% include %}`` template
  184. tag is removed.
  185. * ``DatabaseIntrospection.get_indexes()`` is removed.
  186. * The ``authenticate()`` method of authentication backends requires ``request``
  187. as the first positional argument.
  188. * The ``django.db.models.permalink()`` decorator is removed.
  189. * The ``USE_ETAGS`` setting is removed. ``CommonMiddleware`` and
  190. ``django.utils.cache.patch_response_headers()`` no longer set ETags.
  191. * The ``Model._meta.has_auto_field`` attribute is removed.
  192. * Support for regular expression groups with ``iLmsu#`` in ``url()`` is removed.
  193. * Support for ``Widget.render()`` methods without the ``renderer`` argument
  194. is removed.