3.15.0
What's Changed
Released 15th March 2024
- Django 5.0 and Python 3.12 support [#9157]
- Use POST method instead of GET to perform logout in browsable API [9208]
- Added jQuery 3.7.1 support & dropped previous version [#9094]
- Use str as default path converter [#9066]
- Document support for http.HTTPMethod in the @action decorator added in Python 3.11 [#9067]
- Update exceptions.md [#9071]
- Partial serializer should not have required fields [#7563]
- Propagate 'default' from model field to serializer field. [#9030]
- Allow to override child.run_validation call in ListSerializer [#8035]
- Align SearchFilter behavior to django.contrib.admin search [#9017]
- Class name added to unknown field error [#9019]
- Fix: Pagination response schemas. [#9049]
- Fix choices in ChoiceField to support IntEnum [#8955]
- Fix
SearchFilterrendering search field with invalid value [#9023] - Fix OpenAPI Schema yaml rendering for
timedelta[#9007] - Fix
NamespaceVersioningignoringDEFAULT_VERSIONon non-None namespaces [#7278] - Added Deprecation Warnings for CoreAPI [#7519]
- Removed usage of
field.choicesthat triggered full table load [#8950] - Permit mixed casing of string values for
BooleanFieldvalidation [#8970] - Fixes
BrowsableAPIRendererfor usage withListSerializer. [#7530] - Change semantic of
ORof two permission classes [#7522] - Remove dependency on
pytz[#8984] - Make set_value a method within
Serializer[#8001] - Fix URLPathVersioning reverse fallback [#7247]
- Warn about Decimal type in min_value and max_value arguments of DecimalField [#8972]
- Fix mapping for choice values [#8968]
- Refactor read function to use context manager for file handling [#8967]
- Fix: fallback on CursorPagination ordering if unset on the view [#8954]
- Replaced
OrderedDictwithdict[#8964] - Refactor get_field_info method to include max_digits and decimal_places attributes in SimpleMetadata class [#8943]
- Implement
__eq__for validators [#8925] - Ensure CursorPagination respects nulls in the ordering field [#8912]
- Use ZoneInfo as primary source of timezone data [#8924]
- Add username search field for TokenAdmin (#8927) [#8934]
- Handle Nested Relation in SlugRelatedField when many=False [#8922]
- Bump version of jQuery to 3.6.4 & updated ref links [#8909]
- Support UniqueConstraint [#7438]
- Allow Request, Response, Field, and GenericAPIView to be subscriptable. This allows the classes to be made generic for type checking. [#8825]
- Feat: Add some changes to ValidationError to support django style validation errors [#8863]
- Fix Respect
can_read_modelpermission in DjangoModelPermissions [#8009] - Add SimplePathRouter [#6789]
- Re-prefetch related objects after updating [#8043]
- Fix FilePathField required argument [#8805]
- Raise ImproperlyConfigured exception if
basenameis not unique [#8438] - Use PrimaryKeyRelatedField pkfield in openapi [#8315]
- replace partition with split in BasicAuthentication [#8790]
- Fix BooleanField's allow_null behavior [#8614]
- Handle Django's ValidationErrors in ListField [#6423]
- Remove a bit of inline CSS. Add CSP nonce where it might be required and is available [#8783]
- Use autocomplete widget for user selection in Token admin [#8534]
- Make browsable API compatible with strong CSP [#8784]
- Avoid inline script execution for injecting CSRF token [#7016]
- Mitigate global dependency on inflection [#8017] [#8781]
- Register Django urls [#8778]
- Implemented Verbose Name Translation for TokenProxy [#8713]
- Properly handle OverflowError in DurationField deserialization [#8042]
- Fix OpenAPI operation name plural appropriately [#8017]
- Represent SafeString as plain string on schema rendering [#8429]
- Fix #8771 - Checking for authentication even if
_ignore_model_permissions = True[#8772] - Fix 404 when page query parameter is empty string [#8578]
- Fixes instance check in ListSerializer.to_representation [#8726] [#8727]
- FloatField will crash if the input is a number that is too big [#8725]
- Add missing DurationField to SimpleMetadata label_lookup [#8702]
- Add support for Python 3.11 [#8752]
- Make request consistently available in pagination classes [#8764]
- Possibility to remove trailing zeros on DecimalFields representation [#6514]
- Add a method for getting serializer field name (OpenAPI) [#7493]
- Add
__eq__method forOperandHolderclass [#8710] - Avoid importing
django.testpackage when not testing [#8699] - Preserve exception messages for wrapped Django exceptions [#8051]
- Include
examplesandformatto OpenAPI schema of CursorPagination [#8687] [#8686] - Fix infinite recursion with deepcopy on Request [#8684]
- Refactor: Replace try/except with contextlib.suppress() [#8676]
- Minor fix to SerializeMethodField docstring [#8629]
- Minor refactor: Unnecessary use of list() function [#8672]
- Unnecessary list comprehension [#8670]
- Use correct class to indicate present deprecation [#8665]
Full Changelog: 3.14.0...3.15.0