Skip to content

Commit 7a84dc7

Browse files
authored
Version 3.13 (#8285)
* Version 3.12.5 * Version 3.13 * Version 3.13
1 parent 9c97946 commit 7a84dc7

File tree

4 files changed

+73
-1
lines changed

4 files changed

+73
-1
lines changed

docs/community/3.13-announcement.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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.13
21+
22+
## Django 4.0 support
23+
24+
The latest release now fully supports Django 4.0.
25+
26+
Our requirements are now:
27+
28+
* Python 3.6+
29+
* Django 4.0, 3.2, 3.1, 2.2 (LTS)
30+
31+
## Fields arguments are now keyword-only
32+
33+
When instantiating fields on serializers, you should always use keyword arguments,
34+
such as `serializers.CharField(max_length=200)`. This has always been the case,
35+
and all the examples that we have in the documentation use keyword arguments,
36+
rather than positional arguments.
37+
38+
From REST framework 3.13 onwards, this is now *explicitly enforced*.
39+
40+
The most feasible cases where users might be accidentally omitting the keyword arguments
41+
are likely in the composite fields, `ListField` and `DictField`. For instance...
42+
43+
```python
44+
aliases = serializers.ListField(serializers.CharField())
45+
```
46+
47+
They must now use the more explicit keyword argument style...
48+
49+
```python
50+
aliases = serializers.ListField(child=serializers.CharField())
51+
```
52+
53+
This change has been made because using positional arguments here *does not* result in the expected behaviour.
54+
55+
See Pull Request [#7632](https://github.com/encode/django-rest-framework/pull/7632) for more details.

docs/community/release-notes.md

+16
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,22 @@ You can determine your currently installed version using `pip show`:
3434

3535
---
3636

37+
## 3.13.x series
38+
39+
### 3.13.0
40+
41+
Date: 13th December 2021
42+
43+
* Django 4.0 compatability. [#8178]
44+
* Add `max_length` and `min_length` options to `ListSerializer`. [#8165]
45+
* Add `get_request_serializer` and `get_response_serializer` hooks to `AutoSchema`. [#7424]
46+
* Fix OpenAPI representation of null-able read only fields. [#8116]
47+
* Respect `UNICODE_JSON` setting in API schema outputs. [#7991]
48+
* Fix for `RemoteUserAuthentication`. [#7158]
49+
* Make Field constructors keyword-only. [#7632]
50+
51+
---
52+
3753
## 3.12.x series
3854

3955
### 3.12.4

mkdocs.yml

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ nav:
6666
- 'Contributing to REST framework': 'community/contributing.md'
6767
- 'Project management': 'community/project-management.md'
6868
- 'Release Notes': 'community/release-notes.md'
69+
- '3.13 Announcement': 'community/3.13-announcement.md'
6970
- '3.12 Announcement': 'community/3.12-announcement.md'
7071
- '3.11 Announcement': 'community/3.11-announcement.md'
7172
- '3.10 Announcement': 'community/3.10-announcement.md'

rest_framework/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import django
1111

1212
__title__ = 'Django REST framework'
13-
__version__ = '3.12.4'
13+
__version__ = '3.13.0'
1414
__author__ = 'Tom Christie'
1515
__license__ = 'BSD 3-Clause'
1616
__copyright__ = 'Copyright 2011-2019 Encode OSS Ltd'

0 commit comments

Comments
 (0)