Versioning
Django REST Framework follows a semantic-like versioning scheme:Minor (0.0.x)
API compatible changes. You can upgrade without code changes.
Medium (0.x.0)
May include API changes following the deprecation policy. Read release notes carefully.
Major (x.0.0)
Reserved for substantial project milestones.
As REST Framework is considered feature-complete, most releases are expected to be minor releases.
Deprecation Policy
REST framework releases follow a formal deprecation policy, which is in line with Django’s deprecation policy. The timeline for deprecation of a feature present in version 1.0 would work as follows:Version 1.1 - Silent Warnings
Remains fully backwards compatible with 1.0, but raises
RemovedInDRF13Warning warnings (subclassing PendingDeprecationWarning). These warnings are silent by default, but can be explicitly enabled with:Version 1.2 - Loud Warnings
Escalates warnings to subclass
DeprecationWarning, which is loud by default.Upgrading
To upgrade Django REST framework to the latest version, use pip:Release History
3.16.x series
3.16.1 - August 6, 2025
3.16.1 - August 6, 2025
This release fixes a few bugs, cleans up old code paths for unsupported Python versions and improves translations.Minor Changes:
- Cleanup optional
backports.zoneinfodependency for Python 3.8 and lower
- Fix regression in
unique_togethervalidation withSerializerMethodField - Fix
UniqueTogetherValidatorto handle fields withsourceattribute - Drop HTML line breaks on long headers in browsable API
- Add Kazakh locale support
- Update Korean, German, Chinese, Arabic, Persian, Spanish, and Turkish translations
- Fix typos in Brazilian Portuguese translations
3.16.0 - March 28, 2025
3.16.0 - March 28, 2025
This release improves upstream support with Django and Python. Some fixes around
UniqueConstraint with nullable fields will improve built-in serializer validation.Features:- Add official support for Django 5.1, 5.2a1 and Python 3.13
- Support Django 2.1+ test client JSON data automatically serialized
- Fix unique together validator to respect
UniqueConstraintconditions - Fix raising on nullable fields part of
UniqueConstraint - Fix
unique_togethervalidation with source - Added protections to
AttributeErrorraised within properties
- Remove support for Python 3.8
- Remove long deprecated code from request wrapper
- Remove deprecated
AutoSchema._get_referencemethod
3.15.x series
3.15.2 - June 14, 2024
3.15.2 - June 14, 2024
- Fix potential XSS vulnerability in browsable API
- Revert “Ensure CursorPagination respects nulls in the ordering field”
- Use warnings rather than logging for DecimalField
- Remove unused code
- Django < 4.2 and Python < 3.8 no longer supported
3.15.1 - March 22, 2024
3.15.1 - March 22, 2024
- Fix
SearchFilterhandling of quoted and comma separated strings - Revert number of 3.15.0 issues with unintended side-effects
3.15.0 - March 15, 2024
3.15.0 - March 15, 2024
Major Features:
- Django 5.0 and Python 3.12 support
- Use POST method instead of GET to perform logout in browsable API
- jQuery 3.7.1 support
- Use str as default path converter
- Primary support for
UniqueConstraint - Remove dependency on
pytz - Support
SimplePathRouter
- Align SearchFilter behavior to django.contrib.admin search
- Propagate ‘default’ from model field to serializer field
- Fix choices in ChoiceField to support IntEnum
- Allow Request, Response, Field, and GenericAPIView to be subscriptable for type checking
3.14.x series
3.14.0 - September 22, 2022
3.14.0 - September 22, 2022
- Django 2.2 is no longer supported
- Django 4.1 compatibility
- Add
--api-versionCLI option togenerateschemamanagement command - Enforce
is_valid(raise_exception=False)as a keyword-only argument - Stop calling
set_contexton Validators - Make relative URLs clickable in Browsable API
3.13.x series
3.13.1 - December 15, 2021
3.13.1 - December 15, 2021
Revert schema naming changes with function based
@api_view.3.13.0 - December 13, 2021
3.13.0 - December 13, 2021
- Django 4.0 compatibility
- Add
max_lengthandmin_lengthoptions toListSerializer - Add
get_request_serializerandget_response_serializerhooks toAutoSchema - Fix OpenAPI representation of null-able read only fields
- Respect
UNICODE_JSONsetting in API schema outputs - Make Field constructors keyword-only
Earlier Versions
View Complete Release History
For detailed information about earlier releases (3.12.x, 3.11.x, 3.10.x, and beyond), please visit the GitHub releases page.
Upgrade Guides
Upgrading to 3.16
Upgrading to 3.15
Upgrading to 3.14
Support Policy
We highly recommend and only officially support the latest patch release of each Python and Django series.
Current Support
- Python: 3.9, 3.10, 3.11, 3.12, 3.13
- Django: 4.2 LTS, 5.0, 5.1, 5.2 (upcoming LTS)
