1. ===========================
    
  2. Django 1.11.1 release notes
    
  3. ===========================
    
  4. 
    
  5. *May 6, 2017*
    
  6. 
    
  7. Django 1.11.1 adds a minor feature and fixes several bugs in 1.11.
    
  8. 
    
  9. Allowed disabling server-side cursors on PostgreSQL
    
  10. ===================================================
    
  11. 
    
  12. The change in Django 1.11 to make :meth:`.QuerySet.iterator()` use server-side
    
  13. cursors on PostgreSQL prevents running Django with PgBouncer in transaction
    
  14. pooling mode. To reallow that, use the :setting:`DISABLE_SERVER_SIDE_CURSORS
    
  15. <DATABASE-DISABLE_SERVER_SIDE_CURSORS>` setting in :setting:`DATABASES`.
    
  16. 
    
  17. See :ref:`transaction-pooling-server-side-cursors` for more discussion.
    
  18. 
    
  19. Bugfixes
    
  20. ========
    
  21. 
    
  22. * Made migrations respect ``Index``’s ``name`` argument. If you created a
    
  23.   named index with Django 1.11, ``makemigrations`` will create a migration to
    
  24.   recreate the index with the correct name (:ticket:`28051`).
    
  25. 
    
  26. * Fixed a crash when using a ``__icontains`` lookup on a ``ArrayField``
    
  27.   (:ticket:`28038`).
    
  28. 
    
  29. * Fixed a crash when using a two-tuple in ``EmailMessage``’s ``attachments``
    
  30.   argument (:ticket:`28042`).
    
  31. 
    
  32. * Fixed ``QuerySet.filter()`` crash when it references the name of a
    
  33.   ``OneToOneField`` primary key (:ticket:`28047`).
    
  34. 
    
  35. * Fixed empty POST data table appearing instead of "No POST data" in HTML debug
    
  36.   page (:ticket:`28079`).
    
  37. 
    
  38. * Restored ``BoundField``\s without any ``choices`` evaluating to ``True``
    
  39.   (:ticket:`28058`).
    
  40. 
    
  41. * Prevented ``SessionBase.cycle_key()`` from losing session data if
    
  42.   ``_session_cache`` isn't populated (:ticket:`28066`).
    
  43. 
    
  44. * Fixed layout of ``ReadOnlyPasswordHashWidget`` (used in the admin's user
    
  45.   change page) (:ticket:`28097`).
    
  46. 
    
  47. * Allowed prefetch calls on managers with custom ``ModelIterable`` subclasses
    
  48.   (:ticket:`28096`).
    
  49. 
    
  50. * Fixed change password link in the ``contrib.auth`` admin for ``el``,
    
  51.   ``es_MX``, and ``pt`` translations (:ticket:`28100`).
    
  52. 
    
  53. * Restored the output of the ``class`` attribute in the ``<ul>`` of widgets
    
  54.   that use the ``multiple_input.html`` template. This fixes
    
  55.   ``ModelAdmin.radio_fields`` with ``admin.HORIZONTAL`` (:ticket:`28059`).
    
  56. 
    
  57. * Fixed crash in ``BaseGeometryWidget.subwidgets()`` (:ticket:`28039`).
    
  58. 
    
  59. * Fixed exception reraising in ORM query execution when ``cursor.execute()``
    
  60.   fails and the subsequent ``cursor.close()`` also fails (:ticket:`28091`).
    
  61. 
    
  62. * Fixed a regression where ``CheckboxSelectMultiple``, ``NullBooleanSelect``,
    
  63.   ``RadioSelect``, ``SelectMultiple``, and ``Select`` localized option values
    
  64.   (:ticket:`28075`).
    
  65. 
    
  66. * Corrected the stack level of unordered queryset pagination warnings
    
  67.   (:ticket:`28109`).
    
  68. 
    
  69. * Fixed a regression causing incorrect queries for ``__in`` subquery lookups
    
  70.   when models use ``ForeignKey.to_field`` (:ticket:`28101`).
    
  71. 
    
  72. * Fixed crash when overriding the template of
    
  73.   ``django.views.static.directory_index()`` (:ticket:`28122`).
    
  74. 
    
  75. * Fixed a regression in formset ``min_num`` validation with unchanged forms
    
  76.   that have initial data (:ticket:`28130`).
    
  77. 
    
  78. * Prepared for ``cx_Oracle`` 6.0 support (:ticket:`28138`).
    
  79. 
    
  80. * Updated the ``contrib.postgres`` ``SplitArrayWidget`` to use template-based
    
  81.   widget rendering (:ticket:`28040`).
    
  82. 
    
  83. * Fixed crash in ``BaseGeometryWidget.get_context()`` when overriding existing
    
  84.   ``attrs`` (:ticket:`28105`).
    
  85. 
    
  86. * Prevented ``AddIndex`` and ``RemoveIndex`` from mutating model state
    
  87.   (:ticket:`28043`).
    
  88. 
    
  89. * Prevented migrations from dropping database indexes from ``Meta.indexes``
    
  90.   when changing ``Field.db_index`` to ``False`` (:ticket:`28052`).
    
  91. 
    
  92. * Fixed a regression in choice ordering in form fields with grouped and
    
  93.   non-grouped options (:ticket:`28157`).
    
  94. 
    
  95. * Fixed crash in  ``BaseInlineFormSet._construct_form()`` when using
    
  96.   ``save_as_new`` (:ticket:`28159`).
    
  97. 
    
  98. * Fixed a regression where ``Model._state.db`` wasn't set correctly on
    
  99.   multi-table inheritance parent models after saving a child model
    
  100.   (:ticket:`28166`).
    
  101. 
    
  102. * Corrected the return type of ``ArrayField(CITextField())`` values retrieved
    
  103.   from the database (:ticket:`28161`).
    
  104. 
    
  105. * Fixed ``QuerySet.prefetch_related()`` crash when fetching relations in nested
    
  106.   ``Prefetch`` objects (:ticket:`27554`).
    
  107. 
    
  108. * Prevented hiding GDAL errors if it's not installed when using ``contrib.gis``
    
  109.   (:ticket:`28160`). (It's a required dependency as of Django 1.11.)
    
  110. 
    
  111. * Fixed a regression causing ``__in`` lookups on a foreign key to fail when
    
  112.   using the foreign key's parent model as the lookup value (:ticket:`28175`).