Release notes
Django 1.10 release notes
Temporal data subtraction was unified on all backends. If the database supports it, backends can set DatabaseFeatures.can_return_ids_from_bulk_insert=True and implement DatabaseOperations.fetch_returned_insert_ids() to set primary keys on objects created using QuerySet.bulk_create().
Release notes
Django 1.10 release notes
The reverse relation attached by a ForeignKey pointing to a proxy model is now accessible as a descriptor on the proxied model class and may be referenced in queryset filtering.
Release notes
Django 1.10 release notes
This method must accept a QuerySet instance as its single argument and return a filtered version of the queryset for the model instance the manager is bound to.
Release notes
Django 1.11 release notes
The new Subquery and Exists database expressions allow creating explicit subqueries. Subqueries may refer to fields from the outer queryset using the OuterRef class.
Release notes
Django 1.11.4 release notes
Fixed QuerySet.union() and difference() when combining with a queryset raising EmptyResultSet (#28378). Fixed a regression in pickling of LazyObject on Python 2 when the wrapped object doesn’t have __reduce__() (#28389).
Release notes
Django 1.11.7 release notes
Prevented cache.get_or_set() from caching None if the default argument is a callable that returns None (#28601). Fixed the Basque DATE_FORMAT string (#28710). Made QuerySet.reverse() affect nulls_first and nulls_last (#28722). Fixed unquoted table names in Subquery SQL when using OuterRef (#28689).
Release notes
Django 1.11.8 release notes
Added support for QuerySet.values() and values_list() for union(), difference(), and intersection() queries (#28781). Fixed incorrect index name truncation when using a namespaced db_table (#28792). Made QuerySet.iterator() use server-side cursors on PostgreSQL after values() and values_list() (#28817).
Release notes
Django 1.2 release notes
Queries can be issued at a specific database with the using() method on QuerySet objects. Individual objects can be saved to a specific database by providing a using argument when you call save().
Release notes
Django 1.5.5 release notes
Fixed a Python 3 incompatibility in django.utils.text.unescape_entities() (#21185). Fixed a couple data corruption issues with QuerySet edge cases under Oracle and MySQL (#21203, #21126). Fixed crashes when using combinations of annotate(), select_related(), and only() (#16436).
Release notes
Django 1.6 release notes
The date_hierarchy feature of the admin now relies on QuerySet.datetimes() when it’s used on a DateTimeField. This requires time zone definitions in the database when USE_TZ is True. Learn more.
Release notes
Django 1.6 release notes
The django.db.models.query.EmptyQuerySet can’t be instantiated any more - it is only usable as a marker class for checking if none() has been called: isinstance(qs.none(), EmptyQuerySet) If your CSS/JavaScript code used to access HTML input widgets by type, you should review …
Release notes
Django 1.6.1 release notes
Fixed Queryset.datetimes raising AttributeError in some situations (#21432). Fixed ModelBackend raising UnboundLocalError if get_user_model() raised an error (#21439). Fixed a regression that prevented editable GenericRelation subclasses from working in ModelForms (#21428).
Release notes
Django 1.6.3 release notes
Fixed crash of QuerySets that use F() + timedelta() when their query was compiled more once (#21643). Prevented custom widget class attribute of IntegerField subclasses from being overwritten by the code in their __init__ method (#22245).
Release notes
Django 1.6.7 release notes
Allowed inherited and m2m fields to be referenced in the admin (#23329). Fixed a crash when using QuerySet.defer() with select_related() (#23370).
Release notes
Django 1.8 release notes
Generic views that use MultipleObjectMixin may now specify the ordering applied to the queryset by setting ordering or overriding get_ordering().
Release notes
Django 1.8.3 release notes
Fixed QuerySet.exists() returning incorrect results after annotation with Count() (#24835). Corrected HStoreField.has_changed() (#24844). Reverted an optimization to the CSRF template context processor which caused a regression (#24836).
Release notes
Django 1.8.4 release notes
Fixed QuerySet.raw() so InvalidQuery is not raised when using the db_column name of a ForeignKey field with primary_key=True (#12768). Prevented an exception in TestCase.setUpTestData() from leaking the transaction (#25176). Fixed has_changed() method in contrib.postgres.forms.HStoreField (#25215, #25233).
Release notes
Django 1.9 release notes
To improve performance, the add() methods of the related managers created by ForeignKey and GenericForeignKey changed from a series of Model.save() calls to a single QuerySet.update() call. The change means that pre_save and post_save signals aren’t sent anymore.
Release notes
Django 2.1 release notes
ModelAdmin.search_fields now accepts any lookup such as field__exact. jQuery is upgraded from version 2.2.3 to 3.3.1. The new ModelAdmin.delete_queryset() method allows customizing the deletion process of the “delete selected objects” action. You can now override the default admin site.
Release notes
Django 2.2.6 release notes
Fixed migrations crash on SQLite when altering a model containing partial indexes (#30754). Fixed a regression in Django 2.2.4 that caused a crash when filtering with a Subquery() annotation of a queryset containing django.contrib.postgres.fields.JSONField or HStoreField (#30769).