Django 1.11.1 版本发行说明
2017 年 5 月 6 日
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 DISABLE_SERVER_SIDE_CURSORS setting in DATABASES.
See 事务池和服务器端游标 for more discussion.
漏洞修复
- Made migrations respect
Index
’sname
argument. If you created a named index with Django 1.11,makemigrations
will create a migration to recreate the index with the correct name (#28051). - Fixed a crash when using a
__icontains
lookup on aArrayField
(#28038). - Fixed a crash when using a 2-tuple in
EmailMessage
’sattachments
argument (#28042). - Fixed
QuerySet.filter()
crash when it references the name of aOneToOneField
primary key (#28047). - Fixed empty POST data table appearing instead of “No POST data” in HTML debug page (#28079).
- Restored
BoundField
s without anychoices
evaluating toTrue
(#28058). - Prevented
SessionBase.cycle_key()
from losing session data if_session_cache
isn’t populated (#28066). - Fixed layout of
ReadOnlyPasswordHashWidget
(used in the admin’s user change page) (#28097). - Allowed prefetch calls on managers with custom
ModelIterable
subclasses (#28096). - Fixed change password link in the
contrib.auth
admin forel
,es_MX
, andpt
translations (#28100). - Restored the output of the
class
attribute in the<ul>
of widgets that use themultiple_input.html
template. This fixesModelAdmin.radio_fields
withadmin.HORIZONTAL
(#28059). - Fixed crash in
BaseGeometryWidget.subwidgets()
(#28039). - Fixed exception reraising in ORM query execution when
cursor.execute()
fails and the subsequentcursor.close()
also fails (#28091). - Fixed a regression where
CheckboxSelectMultiple
,NullBooleanSelect
,RadioSelect
,SelectMultiple
, andSelect
localized option values (#28075). - Corrected the stack level of unordered queryset pagination warnings (#28109).
- Fixed a regression causing incorrect queries for
__in
subquery lookups when models useForeignKey.to_field
(#28101). - Fixed crash when overriding the template of
django.views.static.directory_index()
(#28122). - Fixed a regression in formset
min_num
validation with unchanged forms that have initial data (#28130). - Prepared for
cx_Oracle
6.0 support (#28138). - Updated the
contrib.postgres
SplitArrayWidget
to use template-based widget rendering (#28040). - Fixed crash in
BaseGeometryWidget.get_context()
when overriding existingattrs
(#28105). - Prevented
AddIndex
andRemoveIndex
from mutating model state (#28043). - Prevented migrations from dropping database indexes from
Meta.indexes
when changingField.db_index
toFalse
(#28052). - Fixed a regression in choice ordering in form fields with grouped and non-grouped options (#28157).
- Fixed crash in
BaseInlineFormSet._construct_form()
when usingsave_as_new
(#28159). - Fixed a regression where
Model._state.db
wasn’t set correctly on multi-table inheritance parent models after saving a child model (#28166). - Corrected the return type of
ArrayField(CITextField())
values retrieved from the database (#28161). - Fixed
QuerySet.prefetch_related()
crash when fetching relations in nestedPrefetch
objects (#27554). - Prevented hiding GDAL errors if it’s not installed when using
contrib.gis
(#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 (#28175).