Skip to content

Commit 645b7fa

Browse files
Release Notes for 3.15
- Add docs/community/3.15-announcement.md - Update docs/community/release-notes.md - Update mkdocs.yml Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
1 parent 7a9db57 commit 645b7fa

File tree

3 files changed

+185
-0
lines changed

3 files changed

+185
-0
lines changed

docs/community/3.15-announcement.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<style>
2+
.promo li a {
3+
float: left;
4+
width: 130px;
5+
height: 20px;
6+
text-align: center;
7+
margin: 10px 30px;
8+
padding: 150px 0 0 0;
9+
background-position: 0 50%;
10+
background-size: 130px auto;
11+
background-repeat: no-repeat;
12+
font-size: 120%;
13+
color: black;
14+
}
15+
.promo li {
16+
list-style: none;
17+
}
18+
</style>
19+
20+
# Django REST framework 3.15
21+
22+
At the Internet, on August 22nd, 2023, with 124 commits from 99 authors, we are happy to announce the release of Django REST framework 3.15.
23+
24+
## Django 4.2 and Python 3.11 support
25+
26+
The latest release now fully supports Django 4.2 and Python 3.11.
27+
28+
The current minimum versions of Django still is 3.0 and Python 3.6.
29+
30+
## Primary Support of UniqueConstraint
31+
32+
`ModelSerializer` generates validators for [UniqueConstraint](https://docs.djangoproject.com/en/4.0/ref/models/constraints/#uniqueconstraint) (both UniqueValidator and UniqueTogetherValidator)
33+
34+
## ValidationErrors improvements
35+
36+
The `ValidationError` has been aligned with Django's, currently supporting the same style (signature) and nesting.
37+
38+
## SimpleRouter non-regex matching support
39+
40+
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.
41+
42+
## ZoneInfo as the primary source of timezone data
43+
44+
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](https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html).
45+
46+
## Align `SearchFilter` behaviour to `django.contrib.admin` search
47+
48+
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](../api-guide/filtering.md) for more information.
49+
50+
## Default values propagation
51+
52+
Model fields' default values are now propagated to serializer fields, for more information see the [Serializer fields API guide](../api-guide/fields.md#default).
53+
54+
## Other fixes and improvements
55+
56+
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.
57+
58+
See the [release notes](release-notes.md) page for a complete listing.

docs/community/release-notes.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,132 @@ You can determine your currently installed version using `pip show`:
3434

3535
---
3636

37+
## 3.15.x series
38+
39+
### 3.15.0
40+
41+
Date: 8th August 2023
42+
43+
* Propagate 'default' from model field to serializer field. [[#9030](https://github.com/encode/django-rest-framework/pull/9030)]
44+
* Allow to override child.run_validation call in ListSerializer [[#8035](https://github.com/encode/django-rest-framework/pull/8035)]
45+
* Align SearchFilter behaviour to django.contrib.admin search [[#9017](https://github.com/encode/django-rest-framework/pull/9017)]
46+
* Class name added to unkown field error [[#9019](https://github.com/encode/django-rest-framework/pull/9019)]
47+
* Fix: Pagination response schemas. [[#9049](https://github.com/encode/django-rest-framework/pull/9049)]
48+
* Fix choices in ChoiceField to support IntEnum [[#8955](https://github.com/encode/django-rest-framework/pull/8955)]
49+
* Fix `SearchFilter` rendering search field with invalid value [[#9023](https://github.com/encode/django-rest-framework/pull/9023)]
50+
* Fix OpenAPI Schema yaml rendering for `timedelta` [[#9007](https://github.com/encode/django-rest-framework/pull/9007)]
51+
* Fix `NamespaceVersioning` ignoring `DEFAULT_VERSION` on non-None namespaces [[#7278](https://github.com/encode/django-rest-framework/pull/7278)]
52+
* Added Deprecation Warnings for CoreAPI [[#7519](https://github.com/encode/django-rest-framework/pull/7519)]
53+
* Removed usage of `field.choices` that triggered full table load [[#8950](https://github.com/encode/django-rest-framework/pull/8950)]
54+
* Permit mixed casing of string values for `BooleanField` validation [[#8970](https://github.com/encode/django-rest-framework/pull/8970)]
55+
* Fixes `BrowsableAPIRenderer` for usage with `ListSerializer`. [[#7530](https://github.com/encode/django-rest-framework/pull/7530)]
56+
* Change semantic of `OR` of two permission classes [[#7522](https://github.com/encode/django-rest-framework/pull/7522)]
57+
* Remove dependency on `pytz` [[#8984](https://github.com/encode/django-rest-framework/pull/8984)]
58+
* Add NullBooleanField deprecation to docs [[#8999](https://github.com/encode/django-rest-framework/pull/8999)]
59+
* Fix example of `requires_context` attribute [[#8952](https://github.com/encode/django-rest-framework/pull/8952)]
60+
* Fix validation for ListSerializer [[#8979](https://github.com/encode/django-rest-framework/pull/8979)]
61+
* Make set_value a method within `Serializer` [[#8001](https://github.com/encode/django-rest-framework/pull/8001)]
62+
* Fix URLPathVersioning reverse fallback [[#7247](https://github.com/encode/django-rest-framework/pull/7247)]
63+
* Fix Links in Documentation to Django `reverse` and `reverse_lazy` [[#8986](https://github.com/encode/django-rest-framework/pull/8986)]
64+
* Declared Django 4.2 support in README.md [[#8985](https://github.com/encode/django-rest-framework/pull/8985)]
65+
* Remove django 2.2 from docs index [[#8982](https://github.com/encode/django-rest-framework/pull/8982)]
66+
* Warn about Decimal type in min_value and max_value arguments of DecimalField [[#8972](https://github.com/encode/django-rest-framework/pull/8972)]
67+
* Fix mapping for choice values [[#8968](https://github.com/encode/django-rest-framework/pull/8968)]
68+
* Refactor read function to use context manager for file handling [[#8967](https://github.com/encode/django-rest-framework/pull/8967)]
69+
* Fix: fallback on CursorPagination ordering if unset on the view [[#8954](https://github.com/encode/django-rest-framework/pull/8954)]
70+
* Replaced `OrderedDict` with `dict` [[#8964](https://github.com/encode/django-rest-framework/pull/8964)]
71+
* Refactor get_field_info method to include max_digits and decimal_places attributes in SimpleMetadata class [[#8943](https://github.com/encode/django-rest-framework/pull/8943)]
72+
* Implement `__eq__` for validators [[#8925](https://github.com/encode/django-rest-framework/pull/8925)]
73+
* Ensure CursorPagination respects nulls in the ordering field [[#8912](https://github.com/encode/django-rest-framework/pull/8912)]
74+
* Use ZoneInfo as primary source of timezone data [[#8924](https://github.com/encode/django-rest-framework/pull/8924)]
75+
* Add username search field for TokenAdmin (#8927) [[#8934](https://github.com/encode/django-rest-framework/pull/8934)]
76+
* Handle Nested Relation in SlugRelatedField when many=False [[#8922](https://github.com/encode/django-rest-framework/pull/8922)]
77+
* Docs: Fix authentication / authorization mixup [[#8930](https://github.com/encode/django-rest-framework/pull/8930)]
78+
* Use consistent spelling for "authorization" [[#8929](https://github.com/encode/django-rest-framework/pull/8929)]
79+
* Test django 4.2 stable release [[#8932](https://github.com/encode/django-rest-framework/pull/8932)]
80+
* Update requirements-packaging.txt [[#8921](https://github.com/encode/django-rest-framework/pull/8921)]
81+
* Update tox with django 4.2rc1 [[#8920](https://github.com/encode/django-rest-framework/pull/8920)]
82+
* Bump version of jQuery to 3.6.4 & updated ref links [[#8909](https://github.com/encode/django-rest-framework/pull/8909)]
83+
* Minor documentation improvements and fixes [[#8903](https://github.com/encode/django-rest-framework/pull/8903)]
84+
* Support UniqueConstraint [[#7438](https://github.com/encode/django-rest-framework/pull/7438)]
85+
* Test django 4.2b1 [[#8892](https://github.com/encode/django-rest-framework/pull/8892)]
86+
* Docs: add missing renderer import in tutorial 6 [[#8885](https://github.com/encode/django-rest-framework/pull/8885)]
87+
* Allow Request, Response, Field, and GenericAPIView to be subscriptable. This allows the classes to be made generic for type checking. [[#8825](https://github.com/encode/django-rest-framework/pull/8825)]
88+
* Upgrade isort version in pre-commit [[#8882](https://github.com/encode/django-rest-framework/pull/8882)]
89+
* Docs: fix code example [[#8880](https://github.com/encode/django-rest-framework/pull/8880)]
90+
* Feat: Add some changes to ValidationError to support django style vadation errors [[#8863](https://github.com/encode/django-rest-framework/pull/8863)]
91+
* Inherit from faked classes in tests to satisfy mypy [[#8859](https://github.com/encode/django-rest-framework/pull/8859)]
92+
* Initial django 4.2a1 testing [[#8846](https://github.com/encode/django-rest-framework/pull/8846)]
93+
* Fix Respect `can_read_model` permission in DjangoModelPermissions [[#8009](https://github.com/encode/django-rest-framework/pull/8009)]
94+
* Add SimplePathRouter [[#6789](https://github.com/encode/django-rest-framework/pull/6789)]
95+
* Re-prefetch related objects after updating [[#8043](https://github.com/encode/django-rest-framework/pull/8043)]
96+
* Update documentation regarding arguments of ValidationError [[#8807](https://github.com/encode/django-rest-framework/pull/8807)]
97+
* Fix FilePathField required argument [[#8805](https://github.com/encode/django-rest-framework/pull/8805)]
98+
* Update docs to maintained `djangorestframework-guardian2` [[#8817](https://github.com/encode/django-rest-framework/pull/8817)]
99+
* Revert "Fix bug in validators documentation (#8779)" [[#8811](https://github.com/encode/django-rest-framework/pull/8811)]
100+
* Try update django-filter==22.1 [[#8813](https://github.com/encode/django-rest-framework/pull/8813)]
101+
* Upddate setup python action to v4 [[#8806](https://github.com/encode/django-rest-framework/pull/8806)]
102+
* attrs==22.1.0 [[#8828](https://github.com/encode/django-rest-framework/pull/8828)]
103+
* Fix transifex-client version in packaging requirements. [[#8827](https://github.com/encode/django-rest-framework/pull/8827)]
104+
* Raise ImproperlyConfigured exception if `basename` is not unique [[#8438](https://github.com/encode/django-rest-framework/pull/8438)]
105+
* Use PrimaryKeyRelatedField pkfield in openapi [[#8315](https://github.com/encode/django-rest-framework/pull/8315)]
106+
* Upgrade to tox 4 [[#8795](https://github.com/encode/django-rest-framework/pull/8795)]
107+
* replace partition with split in BasicAuthentication [[#8790](https://github.com/encode/django-rest-framework/pull/8790)]
108+
* Fix BooleanField's allow_null behavior [[#8614](https://github.com/encode/django-rest-framework/pull/8614)]
109+
* Handle Django's ValidationErrors in ListField [[#6423](https://github.com/encode/django-rest-framework/pull/6423)]
110+
* Remove a bit of inline CSS. Add CSP nonce where it might be required and is available [[#8783](https://github.com/encode/django-rest-framework/pull/8783)]
111+
* Use autocomplete widget for user selection in Token admin [[#8534](https://github.com/encode/django-rest-framework/pull/8534)]
112+
* Fix bug in validators documentation [[#8779](https://github.com/encode/django-rest-framework/pull/8779)]
113+
* Make browsable API compatbile with strong CSP [[#8784](https://github.com/encode/django-rest-framework/pull/8784)]
114+
* Avoid inline script execution for injecting CSRF token [[#7016](https://github.com/encode/django-rest-framework/pull/7016)]
115+
* Remove Core API mentions from docs [[#8017](https://github.com/encode/django-rest-framework/pull/8017)]
116+
* Mitigate global dependency on inflection #8017 [[#8017](https://github.com/encode/django-rest-framework/pull/8017)] [[#8781](https://github.com/encode/django-rest-framework/pull/8781)]
117+
* Register Django urls [[#8778](https://github.com/encode/django-rest-framework/pull/8778)]
118+
* Implemented Verbose Name Translation for TokenProxy [[#8713](https://github.com/encode/django-rest-framework/pull/8713)]
119+
* Properly handle OverflowError in DurationField deserialization [[#8042](https://github.com/encode/django-rest-framework/pull/8042)]
120+
* Fix OpenAPI operation name plural appropriately [[#8017](https://github.com/encode/django-rest-framework/pull/8017)]
121+
* Represent SafeString as plain string on schema rendering [[#8429](https://github.com/encode/django-rest-framework/pull/8429)]
122+
* Fix #8771 - Checking for authentication even if `_ignore_model_permissions = True` [[#8772](https://github.com/encode/django-rest-framework/pull/8772)]
123+
* Update schema generation doc & add deprecation notice [[#8773](https://github.com/encode/django-rest-framework/pull/8773)]
124+
* Update 6-viewsets-and-routers.md [[#8590](https://github.com/encode/django-rest-framework/pull/8590)]
125+
* Added pagination settings test case [[#8326](https://github.com/encode/django-rest-framework/pull/8326)]
126+
* Fix 404 when page query parameter is empty string [[#8578](https://github.com/encode/django-rest-framework/pull/8578)]
127+
* Fixes instance check in ListSerializer.to_representation [[#8726](https://github.com/encode/django-rest-framework/pull/8726)] [[#8727](https://github.com/encode/django-rest-framework/pull/8727)]
128+
* FloatField will crash if the input is a number that is too big [[#8725](https://github.com/encode/django-rest-framework/pull/8725)]
129+
* Add missing DurationField to SimpleMetada label_lookup [[#8702](https://github.com/encode/django-rest-framework/pull/8702)]
130+
* converted assertion to pytest style in test status [[#8662](https://github.com/encode/django-rest-framework/pull/8662)]
131+
* Fix #8751 - Add support to Python 3.11 [[#8752](https://github.com/encode/django-rest-framework/pull/875)]
132+
* update minimum version to psycopg2-binary>=2.9.5 [[#8767](https://github.com/encode/django-rest-framework/pull/8767)]
133+
* pytest versions update [[#8745](https://github.com/encode/django-rest-framework/pull/8745)]
134+
* Add 3rd party entry for rest-framework-roles [[#8755](https://github.com/encode/django-rest-framework/pull/8755)]
135+
* Added http 102, 103, 421, and 425 status codes in documentation [[#8763](https://github.com/encode/django-rest-framework/pull/8763)]
136+
* Make request consistently available in pagination classes [[#8764](https://github.com/encode/django-rest-framework/pull/9764)]
137+
* Possibility to remove trailing zeros on DecimalFields representation [[#6514](https://github.com/encode/django-rest-framework/pull/6514)]
138+
* Fix Pytest's deprecation warnings about nose usage [[#8758](https://github.com/encode/django-rest-framework/pull/8758)]
139+
* Remove extraneous word "Both" [[#8740](https://github.com/encode/django-rest-framework/pull/8740)]
140+
* Update jobs.md [[#8737](https://github.com/encode/django-rest-framework/pull/8737)]
141+
* Update quickstart.md [[#8575](https://github.com/encode/django-rest-framework/pull/8575)]
142+
* Improve style, fix some typos [[#8405](https://github.com/encode/django-rest-framework/pull/8405)]
143+
* Fixes typo [[#8719](https://github.com/encode/django-rest-framework/pull/8719)]
144+
* Add a method for getting serializer field name (OpenAPI) [[#7493](https://github.com/encode/django-rest-framework/pull/7493)]
145+
* Add `__eq__` method for `OperandHolder` class [[#8710](https://github.com/encode/django-rest-framework/pull/8710)]
146+
* Update schemas.md [[#8707](https://github.com/encode/django-rest-framework/pull/8707)]
147+
* Avoid importing `django.test` package when not testing [[#8699](https://github.com/encode/django-rest-framework/pull/8699)]
148+
* Docs: use `asterisk` for unordered list [[#8697](https://github.com/encode/django-rest-framework/pull/8697)]
149+
* Docs: Convert all tabs into spaces [[#8692](https://github.com/encode/django-rest-framework/pull/8692)]
150+
* Preserve exception messages for wrapped Django exceptions [[#8051](https://github.com/encode/django-rest-framework/pull/8051)]
151+
* Added examples to schema of CursorPagination [[#8687] (https://github.com/encode/django-rest-framework/pull/8687)] [[#8686](https://github.com/encode/django-rest-framework/pull/8686)]
152+
* Fix infinite recursion with deepcopy on Request [[#8684](https://github.com/encode/django-rest-framework/pull/8684)]
153+
* Refactor: Replace try/except with contextlib.suppress() [[#8676](https://github.com/encode/django-rest-framework/pull/8676)]
154+
* Docs: Updated browsable-api.md [[#8678](https://github.com/encode/django-rest-framework/pull/8678)]
155+
* Add spaces to router example in 6-viewsets-and-routers.md [[#8448](https://github.com/encode/django-rest-framework/pull/8448)]
156+
* Update requirements-testing.txt [[#8680](https://github.com/encode/django-rest-framework/pull/8680)]
157+
* Minor fix to SerializeMethodField docstring [[#8629](https://github.com/encode/django-rest-framework/pull/8629)]
158+
* Minor refactor: Unnecessary use of list() function [[#8672](https://github.com/encode/django-rest-framework/pull/8672)]
159+
* Update documentation on dependency installation [[#8566](https://github.com/encode/django-rest-framework/pull/8566)]
160+
* Unnecessary list comprehension [[#8670](https://github.com/encode/django-rest-framework/pull/8670)]
161+
* Use correct class to indicate present deprecation [[#8665](https://github.com/encode/django-rest-framework/pull/8665)]
162+
37163
## 3.14.x series
38164

39165
### 3.14.0

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ nav:
6565
- 'Contributing to REST framework': 'community/contributing.md'
6666
- 'Project management': 'community/project-management.md'
6767
- 'Release Notes': 'community/release-notes.md'
68+
- '3.15 Announcement': 'community/3.15-announcement.md'
6869
- '3.14 Announcement': 'community/3.14-announcement.md'
6970
- '3.13 Announcement': 'community/3.13-announcement.md'
7071
- '3.12 Announcement': 'community/3.12-announcement.md'

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy