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 …
dev
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).
dev
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).
dev
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).
dev
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().
dev
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).
dev
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).
dev
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.
dev
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.
dev
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).
dev
Release notes
Django 3.0.2 release notes
Fixed a regression in Django 3.0 that didn’t include columns referenced by a Subquery() in the GROUP BY clause (#31094). Fixed a regression in Django 3.0 where QuerySet.exists() crashed if a queryset contained an aggregation over a Subquery() (#31109).
dev
Release notes
Django 3.0.3 release notes
Fixed a regression in Django 3.0 where QuerySet.values() and values_list() crashed if a queryset contained an aggregation and Exists() annotation (#31136).
dev
Release notes
Django 3.0.4 release notes
Fixed a data loss possibility when using caching from async code (#31253). Fixed a regression in Django 3.0 that caused a file response using a temporary file to be closed incorrectly (#31240). Fixed a data loss possibility in the select_for_update().
dev
Release notes
Django 3.0.5 release notes
Fixed a regression in Django 3.0 where QuerySet.values() and values_list() crashed if a queryset contained an aggregation and Subquery() annotation that collides with a field name (#31377).
dev
Release notes
Django 3.0.7 release notes
Fixed a regression in Django 3.0 by restoring the ability to use field lookups in Meta.ordering (#31538). Fixed a regression in Django 3.0 where QuerySet.values() and values_list() crashed if a queryset contained an aggregation and a subquery annotation (#31566).
dev
Release notes
Django 3.0.8 release notes
Fixed messages of InvalidCacheKey exceptions and CacheKeyWarning warnings raised by cache key validation (#31654). Fixed a regression in Django 3.0.7 that caused a queryset crash when grouping by a many-to-one relationship (#31660).
dev
Release notes
Django 3.1 release notes
QuerySet.explain() now supports: TREE format on MySQL 8.0.16+, analyze option on MySQL 8.0.18+ and MariaDB. Added PositiveBigIntegerField which acts much like a PositiveIntegerField except that it only allows values under a certain (database-dependent) limit.
dev
Release notes
Django 3.1 release notes
Passing raw column aliases to QuerySet.order_by() is deprecated. The same result can be achieved by passing aliases in a RawSQL instead beforehand. The NullBooleanField model field is deprecated in favor of BooleanField(null=True, blank=True). django.conf.urls.url() alias of django.urls.re_path() is deprecated.
dev
Release notes
Django 3.1.2 release notes
Fixed a regression in Django 3.1 where the QuerySet.ordered attribute returned incorrectly True for GROUP BY queries (e.g. .annotate().values()) on models with Meta.ordering. A model’s Meta.ordering doesn’t affect such queries (#31990).
dev
Release notes
Django 4.0 release notes
Accordingly, the is_dst arguments to the following are also deprecated: django.db.models.query.QuerySet.datetimes() django.db.models.functions.Trunc() django.db.models.functions.TruncSecond() django.db.models.functions.TruncMinute() django.db.models.functions.TruncHour() django.db.models.functions.TruncDay() django.db.models.functions.TruncWeek() django.db.models.functions.TruncMonth() django.db.models.functions.TruncQuarter() django.db.models.functions.TruncYear() django.utils.timezone.make_aware() Support for use of pytz will be removed in Django 5.0.
dev