Django REST framework 3.13
Django 4.0 support
The latest release now fully supports Django 4.0.
Our requirements are now:
- Python 3.6+
- Django 4.0, 3.2, 3.1, 2.2 (LTS)
Fields arguments are now keyword-only
When instantiating fields on serializers, you should always use keyword arguments,
such as serializers.CharField(max_length=200)
. This has always been the case,
and all the examples that we have in the documentation use keyword arguments,
rather than positional arguments.
From REST framework 3.13 onwards, this is now explicitly enforced.
The most feasible cases where users might be accidentally omitting the keyword arguments
are likely in the composite fields, ListField
and DictField
. For instance...
aliases = serializers.ListField(serializers.CharField())
They must now use the more explicit keyword argument style...
aliases = serializers.ListField(child=serializers.CharField())
This change has been made because using positional arguments here does not result in the expected behaviour.
See Pull Request #7632 for more details.