Django 1.11.1 release notes — Django documentation

From Get docs
Django/docs/3.2.x/releases/1.11.1

Django 1.11.1 release notes

May 6, 2017

Django 1.11.1 adds a minor feature and fixes several bugs in 1.11.

Allowed disabling server-side cursors on PostgreSQL

The change in Django 1.11 to make QuerySet.iterator() use server-side cursors on PostgreSQL prevents running Django with PgBouncer in transaction pooling mode. To reallow that, use the :setting:`DISABLE_SERVER_SIDE_CURSORS ` setting in :setting:`DATABASES`.

See Transaction pooling and server-side cursors for more discussion.


Bugfixes

  • Made migrations respect Index’s name argument. If you created a named index with Django 1.11, makemigrations will create a migration to recreate the index with the correct name (:ticket:`28051`).
  • Fixed a crash when using a __icontains lookup on a ArrayField (:ticket:`28038`).
  • Fixed a crash when using a two-tuple in EmailMessage’s attachments argument (:ticket:`28042`).
  • Fixed QuerySet.filter() crash when it references the name of a OneToOneField primary key (:ticket:`28047`).
  • Fixed empty POST data table appearing instead of “No POST data” in HTML debug page (:ticket:`28079`).
  • Restored BoundFields without any choices evaluating to True (:ticket:`28058`).
  • Prevented SessionBase.cycle_key() from losing session data if _session_cache isn’t populated (:ticket:`28066`).
  • Fixed layout of ReadOnlyPasswordHashWidget (used in the admin’s user change page) (:ticket:`28097`).
  • Allowed prefetch calls on managers with custom ModelIterable subclasses (:ticket:`28096`).
  • Fixed change password link in the contrib.auth admin for el, es_MX, and pt translations (:ticket:`28100`).
  • Restored the output of the class attribute in the <ul> of widgets that use the multiple_input.html template. This fixes ModelAdmin.radio_fields with admin.HORIZONTAL (:ticket:`28059`).
  • Fixed crash in BaseGeometryWidget.subwidgets() (:ticket:`28039`).
  • Fixed exception reraising in ORM query execution when cursor.execute() fails and the subsequent cursor.close() also fails (:ticket:`28091`).
  • Fixed a regression where CheckboxSelectMultiple, NullBooleanSelect, RadioSelect, SelectMultiple, and Select localized option values (:ticket:`28075`).
  • Corrected the stack level of unordered queryset pagination warnings (:ticket:`28109`).
  • Fixed a regression causing incorrect queries for __in subquery lookups when models use ForeignKey.to_field (:ticket:`28101`).
  • Fixed crash when overriding the template of django.views.static.directory_index() (:ticket:`28122`).
  • Fixed a regression in formset min_num validation with unchanged forms that have initial data (:ticket:`28130`).
  • Prepared for cx_Oracle 6.0 support (:ticket:`28138`).
  • Updated the contrib.postgres SplitArrayWidget to use template-based widget rendering (:ticket:`28040`).
  • Fixed crash in BaseGeometryWidget.get_context() when overriding existing attrs (:ticket:`28105`).
  • Prevented AddIndex and RemoveIndex from mutating model state (:ticket:`28043`).
  • Prevented migrations from dropping database indexes from Meta.indexes when changing Field.db_index to False (:ticket:`28052`).
  • Fixed a regression in choice ordering in form fields with grouped and non-grouped options (:ticket:`28157`).
  • Fixed crash in BaseInlineFormSet._construct_form() when using save_as_new (:ticket:`28159`).
  • Fixed a regression where Model._state.db wasn’t set correctly on multi-table inheritance parent models after saving a child model (:ticket:`28166`).
  • Corrected the return type of ArrayField(CITextField()) values retrieved from the database (:ticket:`28161`).
  • Fixed QuerySet.prefetch_related() crash when fetching relations in nested Prefetch objects (:ticket:`27554`).
  • Prevented hiding GDAL errors if it’s not installed when using contrib.gis (:ticket:`28160`). (It’s a required dependency as of Django 1.11.)
  • Fixed a regression causing __in lookups on a foreign key to fail when using the foreign key’s parent model as the lookup value (:ticket:`28175`).