djangodocs.org

705 sections in Django 5.1 Search all versions →

Models

Release notes Django 1.9 release notes What’s new in Django 1.9Minor features

QuerySet.bulk_create() now works on proxy models. Database configuration gained a TIME_ZONE option for interacting with databases that store datetimes in local time and don’t support time zones when USE_TZ is True.

Models

Release notes Django 4.2 release notes What’s new in Django 4.2Minor features

QuerySet now extensively supports filtering against Window functions with the exception of disjunctive filter lookups against window functions when performing aggregation. prefetch_related() now supports Prefetch objects with sliced querysets. Registering lookups on Field instances is now supported.

Models

Release notes Django 5.1 release notes What’s new in Django 5.1Minor features

QuerySet.explain() now supports the generic_plan option on PostgreSQL 16+. RowRange now accepts positive integers for the start argument and negative integers for the end argument.

Minor features

Release notes Django 1.4 release notes What’s new in Django 1.4

The distinct() QuerySet method now accepts an optional list of model field names. If specified, then the DISTINCT statement is limited to these fields. This is only supported in PostgreSQL. For more details, see the documentation for distinct().

Models

Release notes Django 1.7 release notes What’s new in Django 1.7Minor features

The QuerySet.update_or_create() method was added. The new default_permissions model Meta option allows you to customize (or disable) creation of the default add, change, and delete permissions. Explicit OneToOneField for Multi-table inheritance are now discovered in abstract classes.

Models

Release notes Django 4.0 release notes What’s new in Django 4.0Minor features

New QuerySet.contains(obj) method returns whether the queryset contains the given object. This tries to perform the query in the simplest and fastest way possible.

Release notes Django 4.1 release notes What’s new in Django 4.1

QuerySet now provides an asynchronous interface for all data access operations. These are named as-per the existing synchronous operations but with an a prefix, for example acreate(), aget(), and so on.

Miscellaneous

Release notes Django 1.10 release notes Features deprecated in 1.10

The repr() of a QuerySet is wrapped in <QuerySet > to disambiguate it from a plain list when debugging. utils.version.get_version() returns PEP 440 compliant release candidate versions (e.g. ‘1.10rc1’ instead of ‘1.10c1’).

Bugfixes

Release notes Django 1.5.4 release notes

Fixed a bug that prevented a QuerySet that uses prefetch_related() from being pickled and unpickled more than once (the second pickling attempt raised an exception) (#21102).

Bugfixes

Release notes Django 2.0.3 release notes

Fixed a regression that caused sliced QuerySet.distinct().order_by() followed by count() to crash (#29108). Prioritized the datetime and time input formats without %f for the Thai locale to fix the admin time picker widget displaying “undefined” (#29109).

Bugfixes

Release notes Django 2.1.1 release notes

Fixed a race condition in QuerySet.update_or_create() that could result in data loss (#29499). Fixed a regression where QueryDict.urlencode() crashed if the dictionary contains a non-string value (#29627).

Models

Release notes Django 3.2 release notes What’s new in Django 3.2Minor features

The new no_key parameter for QuerySet.select_for_update(), supported on PostgreSQL, allows acquiring weaker locks that don’t block the creation of rows that reference locked rows through a foreign key. When() expression now allows using the condition argument with lookups.

Models

Release notes Django 5.0 release notes What’s new in Django 5.0Minor features

The new create_defaults argument of QuerySet.update_or_create() and QuerySet.aupdate_or_create() methods allows specifying a different field values for the create operation. The new violation_error_code attribute of BaseConstraint, CheckConstraint, and UniqueConstraint allows customizing the code of ValidationError raised during model validation.

Database backends

Release notes Django 1.11 release notes What’s new in Django 1.11Minor features

Added the skip_locked argument to QuerySet.select_for_update() on PostgreSQL 9.5+ and Oracle to execute queries with FOR UPDATE SKIP LOCKED. Added the TEST['TEMPLATE'] setting to let PostgreSQL users specify a template for creating the test database.

Models

Release notes Django 1.11 release notes What’s new in Django 1.11Minor features

Added support for callable values in the defaults argument of QuerySet.update_or_create() and get_or_create(). ImageField now has a default validate_image_file_extension validator. (This validator moved to the form field in Django 1.11.2.) Added support for time truncation to Trunc functions.

Release notes Django 1.11 release notes Backwards incompatible changes in 1.11

The change 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 (added in Django 1.11.1) in DATABASES.

Release notes Django 1.4 release notes What’s new in Django 1.4

Django 1.4 includes a QuerySet.select_for_update() method, which generates a SELECT ... FOR UPDATE SQL query. This will lock rows until the end of the transaction, meaning other transactions cannot modify or delete rows matched by a FOR UPDATE query.