Django REST framework 3.15

At the Internet, on March 15th, 2024, with 176 commits by 138 authors, we are happy to announce the release of Django REST framework 3.15.

Django 5.0 and Python 3.12 support

The latest release now fully supports Django 5.0 and Python 3.12.

The current minimum versions of Django still is 3.0 and Python 3.6.

Primary Support of UniqueConstraint

ModelSerializer generates validators for UniqueConstraint (both UniqueValidator and UniqueTogetherValidator)

SimpleRouter non-regex matching support

By default the URLs created by SimpleRouter use regular expressions. This behavior can be modified by setting the use_regex_path argument to False when instantiating the router.

ZoneInfo as the primary source of timezone data

Dependency on pytz has been removed and deprecation warnings have been added, Django will provide ZoneInfo instances as long as USE_DEPRECATED_PYTZ is not enabled. More info on the migration can be found in this guide.

Searches now may contain quoted phrases with spaces, each phrase is considered as a single search term, and it will raise a validation error if any null-character is provided in search. See the Filtering API guide for more information.

Other fixes and improvements

There are a number of fixes and minor improvements in this release, ranging from documentation, internal infrastructure (typing, testing, requirements, deprecation, etc.), security and overall behaviour.

See the release notes page for a complete listing.