diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 120000 index 025215c5e..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1 +0,0 @@ -docs/community/release-notes.md \ No newline at end of file diff --git a/docs/community/3.10-announcement.md b/docs/community/3.10-announcement.md index 7197eb591..469e3d3f7 100644 --- a/docs/community/3.10-announcement.md +++ b/docs/community/3.10-announcement.md @@ -1,18 +1,45 @@ # Django REST framework 3.10 +## Python 3 Only. -* Reworked OpenAPI schema generation. -* Python 3 only. +The 3.10 release is our first to drop support for Python 2. +Our supported Python versions are currently 3.5, 3.6, and 3.7. + +Our support Django versions are currently 1.11, 2.0, 2.1, and 2.2. ## OpenAPI Schema Generation. -Since we first introduced schema support in Django REST Framework 3.5, OpenAPI has emerged as the widely adopted standard for modelling Web APIs. +Since we first introduced schema support in Django REST Framework 3.5, OpenAPI has emerged as the widely adopted standard for modeling Web APIs. -This release deprecates the old CoreAPI based schema generation, and introduces improved OpenAPI schema generation in its place. +This release begins the deprecation process for the CoreAPI based schema generation, and introduces OpenAPI schema generation in its place. ----- +--- + +## Continuing to use CoreAPI + +If you're currently using the CoreAPI schemas, you'll need to make sure to +update your REST framework settings to include `DEFAULT_SCHEMA_CLASS` explicitly. + +**settings.py**: + +```python +REST_FRAMEWORK = { + ... + 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema' +} +``` + +You'll still be able to keep using CoreAPI schemas, API docs, and client for the +foreseeable future. We'll aim to ensure that the CoreAPI schema generator remains +available as a third party package, even once it has eventually been removed +from REST framework, scheduled for version 3.12. + +We have removed the old documentation for the CoreAPI based schema generation. +You may view the [Legacy CoreAPI documentation here][legacy-core-api-docs]. + +--- **Switching mode between `CoreAPI` and `OpenAPI`** @@ -40,9 +67,13 @@ REST_FRAMEWORK = { ---- -### Quickstart +## Quickstart -To get going with `OpenAPI` schemas, use the `get_schema_view()` shortcut. +You can generate a static OpenAPI schema, using the `generateschema` management +command. + +Alternately, to have the project serve an API schema, use the `get_schema_view()` +shortcut. In your `urls.py`: @@ -62,43 +93,41 @@ urlpatterns = [ ] ``` -See the Schemas documentation for more details. +### Customization -### Feature Roadmap +For customizations that you want to apply across the the entire API, you can subclass `rest_framework.schemas.openapi.SchemaGenerator` and provide it as an argument +to the `generateschema` command or `get_schema_view()` helper function. -For v3.7 (with `CoreAPI`) we tried to anticipate customizations that people -were likely to need. (Introducing `manual_fields` and `ManaualSchema`, for -example.) These were under-utilised. They weren't the right abstractions. +For specific per-view customizations, you can subclass `AutoSchema`, +making sure to set `schema = ` on the view. -So, for a fresh start with `OpenAPI`, customizing schema generation has two -simple rules: +For more details, see the [API Schema documentation](../api-guide/schemas.md). -* Subclass `SchemaGenerator` for schema-level cusomizations. -* Subclass `AutoSchema` for view-level customizations. +### API Documentation -We'll wait to see what subclasses people actually come up with, for the -customizations they actually need, before trying to bring that back into the -core framework. +There are some great third party options for documenting your API, based on the +OpenAPI schema. -There are two kinds of changes that easily predictable: +See the [Documenting you API](../topics/documenting-your-api.md) section for more details. -* General improvements which fill in gaps in the automatic schema generation. -* More use-case specific adjustments, which adjust the API of `SchemaGenerator` - or `AutoSchema` +--- + +## Feature Roadmap + +Given that our OpenAPI schema generation is a new feature, it's likely that there +will still be some iterative improvements for us to make. There will be two +main cases here: + +* Expanding the supported range of OpenAPI schemas that are generated by default. +* Improving the ability for developers to customize the output. We'll aim to bring the first type of change quickly in point releases. For the second kind we'd like to adopt a slower approach, to make sure we keep the API simple, and as widely applicable as possible, before we bring in API changes. -We trust that approach makes sense. - -### Deprecating CoreAPI Schema Generation. - -The in-built docs that were introduced in Django REST Framework v3.5 were built on CoreAPI. These are now deprecated. You may continue to use them but they will be **removed in Django REST Framework v 3.12**. - -You should migrate to using the new OpenAPI based schema generation as soon as you can. - -We have removed the old documentation for the CoreAPI based schema generation. -You may view the [Legacy CoreAPI documentation here][legacy-core-api-docs]. +It's also possible that we'll end up implementing API documentation and API client +tooling that are driven by the OpenAPI schema. The `apistar` project has a +significant amount of work towards this. However, if we do so, we'll plan +on keeping any tooling outside of the core framework. [legacy-core-api-docs]:https://github.com/encode/django-rest-framework/blob/master/docs/coreapi/index.md diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index 4ed89d405..e3f3820d3 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -42,12 +42,21 @@ You can determine your currently installed version using `pip show`: ### 3.10.0 -**Date**: [Unreleased][3.10.0-milestone] +**Date**: [15th July 2019][3.10.0-milestone] +* Switch to OpenAPI schema generation. +* Drop Python 2 support. +* Add `generateschema --generator_class` CLI option * Updated PyYaml dependency for OpenAPI schema generation to `pyyaml>=5.1` [#6680][gh6680] * Resolve DeprecationWarning with markdown. [#6317][gh6317] -* Add `generateschema --generator_class` CLI option - +* Use `user.get_username` in templates, in preference to `user.username`. +* Fix for cursor pagination issue that could occur after object deletions. +* Fix for nullable fields with `source="*"` +* Always apply all throttle classes during throttling checks. +* Updates to jQuery and Markdown dependencies. +* Don't strict disallow redundant `SerializerMethodField` field name arguments. +* Don't render extra actions in browable API if not authenticated. +* Strip null characters from search parameters. ## 3.9.x series diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index cead7568d..5ecc151e5 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -8,7 +8,7 @@ ______ _____ _____ _____ __ """ __title__ = 'Django REST framework' -__version__ = '3.9.3' +__version__ = '3.10.0' __author__ = 'Tom Christie' __license__ = 'BSD 2-Clause' __copyright__ = 'Copyright 2011-2019 Encode OSS Ltd' diff --git a/rest_framework/locale/ach/LC_MESSAGES/django.mo b/rest_framework/locale/ach/LC_MESSAGES/django.mo index 495c1ce7d..0fe8c3e93 100644 Binary files a/rest_framework/locale/ach/LC_MESSAGES/django.mo and b/rest_framework/locale/ach/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/ar/LC_MESSAGES/django.mo b/rest_framework/locale/ar/LC_MESSAGES/django.mo index 73d87ba67..19a41dfd6 100644 Binary files a/rest_framework/locale/ar/LC_MESSAGES/django.mo and b/rest_framework/locale/ar/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/be/LC_MESSAGES/django.mo b/rest_framework/locale/be/LC_MESSAGES/django.mo index 13a9e2569..62321f7a4 100644 Binary files a/rest_framework/locale/be/LC_MESSAGES/django.mo and b/rest_framework/locale/be/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/ca/LC_MESSAGES/django.mo b/rest_framework/locale/ca/LC_MESSAGES/django.mo index 28faf17ff..0f72ec039 100644 Binary files a/rest_framework/locale/ca/LC_MESSAGES/django.mo and b/rest_framework/locale/ca/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/ca_ES/LC_MESSAGES/django.mo b/rest_framework/locale/ca_ES/LC_MESSAGES/django.mo index 3a733aa1b..f46cd7f6d 100644 Binary files a/rest_framework/locale/ca_ES/LC_MESSAGES/django.mo and b/rest_framework/locale/ca_ES/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/cs/LC_MESSAGES/django.mo b/rest_framework/locale/cs/LC_MESSAGES/django.mo index 4352fb091..1561cd98c 100644 Binary files a/rest_framework/locale/cs/LC_MESSAGES/django.mo and b/rest_framework/locale/cs/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/da/LC_MESSAGES/django.mo b/rest_framework/locale/da/LC_MESSAGES/django.mo index 1983e068f..77fd7c2ab 100644 Binary files a/rest_framework/locale/da/LC_MESSAGES/django.mo and b/rest_framework/locale/da/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/de/LC_MESSAGES/django.mo b/rest_framework/locale/de/LC_MESSAGES/django.mo index eb0ddf66d..0042572ef 100644 Binary files a/rest_framework/locale/de/LC_MESSAGES/django.mo and b/rest_framework/locale/de/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/el/LC_MESSAGES/django.mo b/rest_framework/locale/el/LC_MESSAGES/django.mo index d275dba3b..b44b9ea9c 100644 Binary files a/rest_framework/locale/el/LC_MESSAGES/django.mo and b/rest_framework/locale/el/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/el_GR/LC_MESSAGES/django.mo b/rest_framework/locale/el_GR/LC_MESSAGES/django.mo index 67018c3f9..2f23ce5f2 100644 Binary files a/rest_framework/locale/el_GR/LC_MESSAGES/django.mo and b/rest_framework/locale/el_GR/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/en/LC_MESSAGES/django.mo b/rest_framework/locale/en/LC_MESSAGES/django.mo index 79ab58522..68e5600ae 100644 Binary files a/rest_framework/locale/en/LC_MESSAGES/django.mo and b/rest_framework/locale/en/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/en_AU/LC_MESSAGES/django.mo b/rest_framework/locale/en_AU/LC_MESSAGES/django.mo index d24f22cb4..3a595d935 100644 Binary files a/rest_framework/locale/en_AU/LC_MESSAGES/django.mo and b/rest_framework/locale/en_AU/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/en_CA/LC_MESSAGES/django.mo b/rest_framework/locale/en_CA/LC_MESSAGES/django.mo index ef1569c0b..930db1b4e 100644 Binary files a/rest_framework/locale/en_CA/LC_MESSAGES/django.mo and b/rest_framework/locale/en_CA/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/en_US/LC_MESSAGES/django.mo b/rest_framework/locale/en_US/LC_MESSAGES/django.mo index 3714ec8fa..6c5906d1c 100644 Binary files a/rest_framework/locale/en_US/LC_MESSAGES/django.mo and b/rest_framework/locale/en_US/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/es/LC_MESSAGES/django.mo b/rest_framework/locale/es/LC_MESSAGES/django.mo index 372bf6bf6..6efb9bdd1 100644 Binary files a/rest_framework/locale/es/LC_MESSAGES/django.mo and b/rest_framework/locale/es/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/et/LC_MESSAGES/django.mo b/rest_framework/locale/et/LC_MESSAGES/django.mo index eaadf454b..8deba1eb0 100644 Binary files a/rest_framework/locale/et/LC_MESSAGES/django.mo and b/rest_framework/locale/et/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/fa/LC_MESSAGES/django.mo b/rest_framework/locale/fa/LC_MESSAGES/django.mo index 0f9b58f3f..0e73156d4 100644 Binary files a/rest_framework/locale/fa/LC_MESSAGES/django.mo and b/rest_framework/locale/fa/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/fa_IR/LC_MESSAGES/django.mo b/rest_framework/locale/fa_IR/LC_MESSAGES/django.mo index 9a02cb05e..1f72e1090 100644 Binary files a/rest_framework/locale/fa_IR/LC_MESSAGES/django.mo and b/rest_framework/locale/fa_IR/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/fi/LC_MESSAGES/django.mo b/rest_framework/locale/fi/LC_MESSAGES/django.mo index e0231cfb3..67dd26ef2 100644 Binary files a/rest_framework/locale/fi/LC_MESSAGES/django.mo and b/rest_framework/locale/fi/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.mo b/rest_framework/locale/fr/LC_MESSAGES/django.mo index e3ba4a2c5..b462e08d7 100644 Binary files a/rest_framework/locale/fr/LC_MESSAGES/django.mo and b/rest_framework/locale/fr/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/fr_CA/LC_MESSAGES/django.mo b/rest_framework/locale/fr_CA/LC_MESSAGES/django.mo index 1771787f8..77bcff117 100644 Binary files a/rest_framework/locale/fr_CA/LC_MESSAGES/django.mo and b/rest_framework/locale/fr_CA/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/gl/LC_MESSAGES/django.mo b/rest_framework/locale/gl/LC_MESSAGES/django.mo index 030e25f94..87d65da74 100644 Binary files a/rest_framework/locale/gl/LC_MESSAGES/django.mo and b/rest_framework/locale/gl/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/gl_ES/LC_MESSAGES/django.mo b/rest_framework/locale/gl_ES/LC_MESSAGES/django.mo index 90c4212ba..a9a0273f1 100644 Binary files a/rest_framework/locale/gl_ES/LC_MESSAGES/django.mo and b/rest_framework/locale/gl_ES/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/he_IL/LC_MESSAGES/django.mo b/rest_framework/locale/he_IL/LC_MESSAGES/django.mo index 55ffe5403..acd15d9fd 100644 Binary files a/rest_framework/locale/he_IL/LC_MESSAGES/django.mo and b/rest_framework/locale/he_IL/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/hu/LC_MESSAGES/django.mo b/rest_framework/locale/hu/LC_MESSAGES/django.mo index 8b884fbed..8fadddcea 100644 Binary files a/rest_framework/locale/hu/LC_MESSAGES/django.mo and b/rest_framework/locale/hu/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/id/LC_MESSAGES/django.mo b/rest_framework/locale/id/LC_MESSAGES/django.mo index beb9643b0..471d5a830 100644 Binary files a/rest_framework/locale/id/LC_MESSAGES/django.mo and b/rest_framework/locale/id/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/it/LC_MESSAGES/django.mo b/rest_framework/locale/it/LC_MESSAGES/django.mo index a9510eb89..1d4fd34c3 100644 Binary files a/rest_framework/locale/it/LC_MESSAGES/django.mo and b/rest_framework/locale/it/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/ja/LC_MESSAGES/django.mo b/rest_framework/locale/ja/LC_MESSAGES/django.mo index 9ce42cfb3..5b9dbd8da 100644 Binary files a/rest_framework/locale/ja/LC_MESSAGES/django.mo and b/rest_framework/locale/ja/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/ko_KR/LC_MESSAGES/django.mo b/rest_framework/locale/ko_KR/LC_MESSAGES/django.mo index 9fb8ae279..570ff6f53 100644 Binary files a/rest_framework/locale/ko_KR/LC_MESSAGES/django.mo and b/rest_framework/locale/ko_KR/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/lv/LC_MESSAGES/django.mo b/rest_framework/locale/lv/LC_MESSAGES/django.mo index 2dc5956f3..b4accc34e 100644 Binary files a/rest_framework/locale/lv/LC_MESSAGES/django.mo and b/rest_framework/locale/lv/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/mk/LC_MESSAGES/django.mo b/rest_framework/locale/mk/LC_MESSAGES/django.mo index ae9956f25..752263456 100644 Binary files a/rest_framework/locale/mk/LC_MESSAGES/django.mo and b/rest_framework/locale/mk/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/nb/LC_MESSAGES/django.mo b/rest_framework/locale/nb/LC_MESSAGES/django.mo index 536cb3272..fc57ebb9f 100644 Binary files a/rest_framework/locale/nb/LC_MESSAGES/django.mo and b/rest_framework/locale/nb/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/nl/LC_MESSAGES/django.mo b/rest_framework/locale/nl/LC_MESSAGES/django.mo index 782bf1634..ed74bffa0 100644 Binary files a/rest_framework/locale/nl/LC_MESSAGES/django.mo and b/rest_framework/locale/nl/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/nn/LC_MESSAGES/django.mo b/rest_framework/locale/nn/LC_MESSAGES/django.mo index a2c1e01f8..6c28661ea 100644 Binary files a/rest_framework/locale/nn/LC_MESSAGES/django.mo and b/rest_framework/locale/nn/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/no/LC_MESSAGES/django.mo b/rest_framework/locale/no/LC_MESSAGES/django.mo index 2c058c8c7..808e0a2d5 100644 Binary files a/rest_framework/locale/no/LC_MESSAGES/django.mo and b/rest_framework/locale/no/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/pl/LC_MESSAGES/django.mo b/rest_framework/locale/pl/LC_MESSAGES/django.mo index 99840f55c..436580b35 100644 Binary files a/rest_framework/locale/pl/LC_MESSAGES/django.mo and b/rest_framework/locale/pl/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/pt/LC_MESSAGES/django.mo b/rest_framework/locale/pt/LC_MESSAGES/django.mo index 9e3c7ab2f..c88991bfa 100644 Binary files a/rest_framework/locale/pt/LC_MESSAGES/django.mo and b/rest_framework/locale/pt/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/pt_BR/LC_MESSAGES/django.mo b/rest_framework/locale/pt_BR/LC_MESSAGES/django.mo index 2740e8c13..008629823 100644 Binary files a/rest_framework/locale/pt_BR/LC_MESSAGES/django.mo and b/rest_framework/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/pt_PT/LC_MESSAGES/django.mo b/rest_framework/locale/pt_PT/LC_MESSAGES/django.mo index 754e18154..67da6164b 100644 Binary files a/rest_framework/locale/pt_PT/LC_MESSAGES/django.mo and b/rest_framework/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/ro/LC_MESSAGES/django.mo b/rest_framework/locale/ro/LC_MESSAGES/django.mo index 6a8ada9a7..0d6f6f942 100644 Binary files a/rest_framework/locale/ro/LC_MESSAGES/django.mo and b/rest_framework/locale/ro/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/ru/LC_MESSAGES/django.mo b/rest_framework/locale/ru/LC_MESSAGES/django.mo index 88c582b13..85918d65a 100644 Binary files a/rest_framework/locale/ru/LC_MESSAGES/django.mo and b/rest_framework/locale/ru/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/sk/LC_MESSAGES/django.mo b/rest_framework/locale/sk/LC_MESSAGES/django.mo index 83d43c822..c82ae3e09 100644 Binary files a/rest_framework/locale/sk/LC_MESSAGES/django.mo and b/rest_framework/locale/sk/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/sl/LC_MESSAGES/django.mo b/rest_framework/locale/sl/LC_MESSAGES/django.mo index 9ac13843f..33aba7cf4 100644 Binary files a/rest_framework/locale/sl/LC_MESSAGES/django.mo and b/rest_framework/locale/sl/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/sv/LC_MESSAGES/django.mo b/rest_framework/locale/sv/LC_MESSAGES/django.mo index 232b5bcee..7abf311b9 100644 Binary files a/rest_framework/locale/sv/LC_MESSAGES/django.mo and b/rest_framework/locale/sv/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/tr/LC_MESSAGES/django.mo b/rest_framework/locale/tr/LC_MESSAGES/django.mo index 586b494c3..fcdff0a98 100644 Binary files a/rest_framework/locale/tr/LC_MESSAGES/django.mo and b/rest_framework/locale/tr/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/tr_TR/LC_MESSAGES/django.mo b/rest_framework/locale/tr_TR/LC_MESSAGES/django.mo index c0665f537..2999352a2 100644 Binary files a/rest_framework/locale/tr_TR/LC_MESSAGES/django.mo and b/rest_framework/locale/tr_TR/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/uk/LC_MESSAGES/django.mo b/rest_framework/locale/uk/LC_MESSAGES/django.mo index 0c8102088..9772bedc5 100644 Binary files a/rest_framework/locale/uk/LC_MESSAGES/django.mo and b/rest_framework/locale/uk/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/vi/LC_MESSAGES/django.mo b/rest_framework/locale/vi/LC_MESSAGES/django.mo index 578308acf..c76cfe595 100644 Binary files a/rest_framework/locale/vi/LC_MESSAGES/django.mo and b/rest_framework/locale/vi/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/zh_CN/LC_MESSAGES/django.mo b/rest_framework/locale/zh_CN/LC_MESSAGES/django.mo index 00afcdb9a..f30b04ea1 100644 Binary files a/rest_framework/locale/zh_CN/LC_MESSAGES/django.mo and b/rest_framework/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/zh_Hans/LC_MESSAGES/django.mo b/rest_framework/locale/zh_Hans/LC_MESSAGES/django.mo index a784846b2..d85317ebc 100644 Binary files a/rest_framework/locale/zh_Hans/LC_MESSAGES/django.mo and b/rest_framework/locale/zh_Hans/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/zh_Hant/LC_MESSAGES/django.mo b/rest_framework/locale/zh_Hant/LC_MESSAGES/django.mo index 08954cc4b..0d8ccaa55 100644 Binary files a/rest_framework/locale/zh_Hant/LC_MESSAGES/django.mo and b/rest_framework/locale/zh_Hant/LC_MESSAGES/django.mo differ diff --git a/rest_framework/locale/zh_TW/LC_MESSAGES/django.mo b/rest_framework/locale/zh_TW/LC_MESSAGES/django.mo index b3158f9eb..2f85c2f82 100644 Binary files a/rest_framework/locale/zh_TW/LC_MESSAGES/django.mo and b/rest_framework/locale/zh_TW/LC_MESSAGES/django.mo differ