diff --git a/README.md b/README.md index c19105bc7..92aad7499 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ There is a live example API for testing purposes, [available here][sandbox]. # Requirements * Python (2.7, 3.4, 3.5, 3.6) -* Django (1.10, 1.11, 2.0rc1) +* Django (1.10, 1.11, 2.0) # Installation diff --git a/docs/topics/release-notes.md b/docs/topics/release-notes.md index 2f2cdf1a1..e6c9f78f2 100644 --- a/docs/topics/release-notes.md +++ b/docs/topics/release-notes.md @@ -42,9 +42,9 @@ You can determine your currently installed version using `pip freeze`: ### 3.7.4 -**Date**: UNRELEASED +**Date**: [20th December 2017][3.7.4-milestone] -* Extract method for `manual_fields` processing [#5633][gh5633] +* Schema: Extract method for `manual_fields` processing [#5633][gh5633] Allows for easier customisation of `manual_fields` processing, for example to provide per-method manual fields. `AutoSchema` adds `get_manual_fields`, @@ -54,10 +54,51 @@ You can determine your currently installed version using `pip freeze`: Note: `AutoSchema.__init__` now ensures `manual_fields` is a list. Previously may have been stored internally as `None`. - - -[gh5633]: https://github.com/encode/django-rest-framework/issues/5633 - +* Remove ulrparse compatability shim; use six instead [#5579][gh5579] +* Drop compat wrapper for `TimeDelta.total_seconds()` [#5577][gh5577] +* Clean up all whitespace throughout project [#5578][gh5578] +* Compat cleanup [#5581][gh5581] +* Add pygments CSS block in browsable API views [#5584][gh5584] [#5587][gh5587] +* Remove `set_rollback()` from compat [#5591][gh5591] +* Fix request body/POST access [#5590][gh5590] +* Rename test to reference correct issue [#5610][gh5610] +* Documentation Fixes [#5611][gh5611] [#5612][gh5612] +* Remove references to unsupported Django versions in docs and code [#5602][gh5602] +* Test Serializer exclude for declared fields [#5599][gh5599] +* Fixed schema generation for filter backends [#5613][gh5613] +* Minor cleanup for ModelSerializer tests [#5598][gh5598] +* Reimplement request attribute access w/ `__getattr__` [#5617][gh5617] +* Fixed SchemaJSRenderer renders invalid Javascript [#5607][gh5607] +* Make Django 2.0 support official/explicit [#5619][gh5619] +* Perform type check on passed request argument [#5618][gh5618] +* Fix AttributeError hiding on request authenticators [#5600][gh5600] +* Update test requirements [#5626][gh5626] +* Docs: `Serializer._declared_fields` enable modifying fields on a serializer [#5629][gh5629] +* Fix packaging [#5624][gh5624] +* Fix readme rendering for PyPI, add readme build to CI [#5625][gh5625] +* Update tutorial [#5622][gh5622] +* Non-required fields with `allow_null=True` should not imply a default value [#5639][gh5639] +* Docs: Add `allow_null` serialization output note [#5641][gh5641] +* Update to use the Django 2.0 release in tox.ini [#5645][gh5645] +* Fix `Serializer.data` for Browsable API rendering when provided invalid `data` [#5646][gh5646] +* Docs: Note AutoSchema limitations on bare APIView [#5649][gh5649] +* Add `.basename` and `.reverse_action()` to ViewSet [#5648][gh5648] +* Docs: Fix typos in serializers documentation [#5652][gh5652] +* Fix `override_settings` compat [#5668][gh5668] +* Add DEFAULT_SCHEMA_CLASS setting [#5658][gh5658] +* Add docs note re generated BooleanField being `required=False` [#5665][gh5665] +* Add 'dist' build [#5656][gh5656] +* Fix typo in docstring [#5678][gh5678] +* Docs: Add `UNAUTHENTICATED_USER = None` note [#5679][gh5679] +* Update OPTIONS example from “Documenting Your API” [#5680][gh5680] +* Docs: Add note on object permissions for FBVs [#5681][gh5681] +* Docs: Add example to `to_representation` docs [#5682][gh5682] +* Add link to Classy DRF in docs [#5683][gh5683] +* Document ViewSet.action [#5685][gh5685] +* Fix schema docs typo [#5687][gh5687] +* Fix URL pattern parsing in schema generation [#5689][gh5689] +* Add example using `source=‘*’` to custom field docs. [#5688][gh5688] +* Fix format_suffix_patterns behavior with Django 2 path() routes [#5691][gh5691] ### 3.7.3 @@ -882,6 +923,7 @@ For older release notes, [please see the version 2.x documentation][old-release- [3.7.1-milestone]: https://github.com/encode/django-rest-framework/milestone/58?closed=1 [3.7.2-milestone]: https://github.com/encode/django-rest-framework/milestone/59?closed=1 [3.7.3-milestone]: https://github.com/encode/django-rest-framework/milestone/60?closed=1 +[3.7.4-milestone]: https://github.com/encode/django-rest-framework/milestone/62?closed=1 @@ -1640,3 +1682,54 @@ For older release notes, [please see the version 2.x documentation][old-release- [gh5567]: https://github.com/encode/django-rest-framework/issues/5567 + + +[gh5691]: https://github.com/encode/django-rest-framework/issues/5691 +[gh5688]: https://github.com/encode/django-rest-framework/issues/5688 +[gh5689]: https://github.com/encode/django-rest-framework/issues/5689 +[gh5687]: https://github.com/encode/django-rest-framework/issues/5687 +[gh5685]: https://github.com/encode/django-rest-framework/issues/5685 +[gh5683]: https://github.com/encode/django-rest-framework/issues/5683 +[gh5682]: https://github.com/encode/django-rest-framework/issues/5682 +[gh5681]: https://github.com/encode/django-rest-framework/issues/5681 +[gh5680]: https://github.com/encode/django-rest-framework/issues/5680 +[gh5679]: https://github.com/encode/django-rest-framework/issues/5679 +[gh5678]: https://github.com/encode/django-rest-framework/issues/5678 +[gh5656]: https://github.com/encode/django-rest-framework/issues/5656 +[gh5665]: https://github.com/encode/django-rest-framework/issues/5665 +[gh5658]: https://github.com/encode/django-rest-framework/issues/5658 +[gh5668]: https://github.com/encode/django-rest-framework/issues/5668 +[gh5652]: https://github.com/encode/django-rest-framework/issues/5652 +[gh5648]: https://github.com/encode/django-rest-framework/issues/5648 +[gh5649]: https://github.com/encode/django-rest-framework/issues/5649 +[gh5646]: https://github.com/encode/django-rest-framework/issues/5646 +[gh5645]: https://github.com/encode/django-rest-framework/issues/5645 +[gh5641]: https://github.com/encode/django-rest-framework/issues/5641 +[gh5639]: https://github.com/encode/django-rest-framework/issues/5639 +[gh5622]: https://github.com/encode/django-rest-framework/issues/5622 +[gh5625]: https://github.com/encode/django-rest-framework/issues/5625 +[gh5624]: https://github.com/encode/django-rest-framework/issues/5624 +[gh5629]: https://github.com/encode/django-rest-framework/issues/5629 +[gh5626]: https://github.com/encode/django-rest-framework/issues/5626 +[gh5600]: https://github.com/encode/django-rest-framework/issues/5600 +[gh5618]: https://github.com/encode/django-rest-framework/issues/5618 +[gh5619]: https://github.com/encode/django-rest-framework/issues/5619 +[gh5607]: https://github.com/encode/django-rest-framework/issues/5607 +[gh5617]: https://github.com/encode/django-rest-framework/issues/5617 +[gh5598]: https://github.com/encode/django-rest-framework/issues/5598 +[gh5613]: https://github.com/encode/django-rest-framework/issues/5613 +[gh5599]: https://github.com/encode/django-rest-framework/issues/5599 +[gh5602]: https://github.com/encode/django-rest-framework/issues/5602 +[gh5612]: https://github.com/encode/django-rest-framework/issues/5612 +[gh5611]: https://github.com/encode/django-rest-framework/issues/5611 +[gh5610]: https://github.com/encode/django-rest-framework/issues/5610 +[gh5590]: https://github.com/encode/django-rest-framework/issues/5590 +[gh5591]: https://github.com/encode/django-rest-framework/issues/5591 +[gh5587]: https://github.com/encode/django-rest-framework/issues/5587 +[gh5584]: https://github.com/encode/django-rest-framework/issues/5584 +[gh5581]: https://github.com/encode/django-rest-framework/issues/5581 +[gh5578]: https://github.com/encode/django-rest-framework/issues/5578 +[gh5577]: https://github.com/encode/django-rest-framework/issues/5577 +[gh5579]: https://github.com/encode/django-rest-framework/issues/5579 +[gh5633]: https://github.com/encode/django-rest-framework/issues/5633 + diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index e1e55c612..8c3054407 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -8,7 +8,7 @@ ______ _____ _____ _____ __ """ __title__ = 'Django REST framework' -__version__ = '3.7.3' +__version__ = '3.7.4' __author__ = 'Tom Christie' __license__ = 'BSD 2-Clause' __copyright__ = 'Copyright 2011-2017 Tom Christie' diff --git a/rest_framework/locale/nb/LC_MESSAGES/django.mo b/rest_framework/locale/nb/LC_MESSAGES/django.mo index 18cc4bc8d..536cb3272 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/nb/LC_MESSAGES/django.po b/rest_framework/locale/nb/LC_MESSAGES/django.po index 27bbdbe18..f572f90be 100644 --- a/rest_framework/locale/nb/LC_MESSAGES/django.po +++ b/rest_framework/locale/nb/LC_MESSAGES/django.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Håken Lid , 2017 # Petter Kjelkenes , 2015 # Thomas Bruun , 2017 msgid "" @@ -10,8 +11,8 @@ msgstr "" "Project-Id-Version: Django REST framework\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-07-12 16:13+0100\n" -"PO-Revision-Date: 2017-11-01 09:58+0000\n" -"Last-Translator: Thomas Bruun \n" +"PO-Revision-Date: 2017-11-28 15:25+0000\n" +"Last-Translator: Håken Lid \n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,7 +26,7 @@ msgstr "Ugyldig basic header. Ingen legitimasjon gitt." #: authentication.py:76 msgid "Invalid basic header. Credentials string should not contain spaces." -msgstr "Ugylid basic header. Legitimasjonsstreng bør ikke inneholde mellomrom." +msgstr "Ugyldig basic header. Legitimasjonsstreng bør ikke inneholde mellomrom." #: authentication.py:82 msgid "Invalid basic header. Credentials not correctly base64 encoded." @@ -58,35 +59,35 @@ msgstr "Ugyldig token." #: authtoken/apps.py:7 msgid "Auth Token" -msgstr "" +msgstr "Auth Token" #: authtoken/models.py:15 msgid "Key" -msgstr "" +msgstr "Nøkkel" #: authtoken/models.py:18 msgid "User" -msgstr "" +msgstr "Bruker" #: authtoken/models.py:20 msgid "Created" -msgstr "" +msgstr "Opprettet" #: authtoken/models.py:29 msgid "Token" -msgstr "" +msgstr "Token" #: authtoken/models.py:30 msgid "Tokens" -msgstr "" +msgstr "Tokener" #: authtoken/serializers.py:8 msgid "Username" -msgstr "" +msgstr "Brukernavn" #: authtoken/serializers.py:9 msgid "Password" -msgstr "" +msgstr "Passord" #: authtoken/serializers.py:20 msgid "User account is disabled." @@ -98,7 +99,7 @@ msgstr "Kan ikke logge inn med gitt legitimasjon." #: authtoken/serializers.py:26 msgid "Must include \"username\" and \"password\"." -msgstr "Må inkludere \"username\" og \"password\"." +msgstr "Må inneholde \"username\" og \"password\"." #: exceptions.py:49 msgid "A server error occurred." @@ -316,15 +317,15 @@ msgstr "Send inn" #: filters.py:336 msgid "ascending" -msgstr "" +msgstr "stigende" #: filters.py:337 msgid "descending" -msgstr "" +msgstr "synkende" #: pagination.py:193 msgid "Invalid page." -msgstr "" +msgstr "Ugyldig side" #: pagination.py:427 msgid "Invalid cursor" @@ -426,7 +427,7 @@ msgstr "Ugyldig versjon i URL-banen." #: versioning.py:115 msgid "Invalid version in URL path. Does not match any version namespace." -msgstr "" +msgstr "Ugyldig versjon i URL. Passer ikke med noen eksisterende versjon." #: versioning.py:147 msgid "Invalid version in hostname." diff --git a/rest_framework/locale/pt_BR/LC_MESSAGES/django.mo b/rest_framework/locale/pt_BR/LC_MESSAGES/django.mo index 482c07cdb..2740e8c13 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_BR/LC_MESSAGES/django.po b/rest_framework/locale/pt_BR/LC_MESSAGES/django.po index 3a57b6770..9489f20a0 100644 --- a/rest_framework/locale/pt_BR/LC_MESSAGES/django.po +++ b/rest_framework/locale/pt_BR/LC_MESSAGES/django.po @@ -7,13 +7,14 @@ # Ederson Mota Pereira , 2015 # Filipe Rinaldi , 2015 # Hugo Leonardo Chalhoub Mendonça , 2015 +# Jonatas Baldin , 2017 msgid "" msgstr "" "Project-Id-Version: Django REST framework\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-07-12 16:13+0100\n" -"PO-Revision-Date: 2017-08-03 14:58+0000\n" -"Last-Translator: Thomas Christie \n" +"PO-Revision-Date: 2017-12-06 09:53+0000\n" +"Last-Translator: Jonatas Baldin \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -60,35 +61,35 @@ msgstr "Token inválido." #: authtoken/apps.py:7 msgid "Auth Token" -msgstr "" +msgstr "Token de autenticação" #: authtoken/models.py:15 msgid "Key" -msgstr "" +msgstr "Chave" #: authtoken/models.py:18 msgid "User" -msgstr "" +msgstr "Usuário" #: authtoken/models.py:20 msgid "Created" -msgstr "" +msgstr "Criado" #: authtoken/models.py:29 msgid "Token" -msgstr "" +msgstr "Token" #: authtoken/models.py:30 msgid "Tokens" -msgstr "" +msgstr "Tokens" #: authtoken/serializers.py:8 msgid "Username" -msgstr "" +msgstr "Nome do usuário" #: authtoken/serializers.py:9 msgid "Password" -msgstr "" +msgstr "Senha" #: authtoken/serializers.py:20 msgid "User account is disabled." @@ -318,15 +319,15 @@ msgstr "Enviar" #: filters.py:336 msgid "ascending" -msgstr "" +msgstr "ascendente" #: filters.py:337 msgid "descending" -msgstr "" +msgstr "descendente" #: pagination.py:193 msgid "Invalid page." -msgstr "" +msgstr "Página inválida." #: pagination.py:427 msgid "Invalid cursor" @@ -428,7 +429,7 @@ msgstr "Versão inválida no caminho de URL." #: versioning.py:115 msgid "Invalid version in URL path. Does not match any version namespace." -msgstr "" +msgstr "Versão inválida no caminho da URL. Não corresponde a nenhuma versão do namespace." #: versioning.py:147 msgid "Invalid version in hostname." diff --git a/setup.py b/setup.py index 54acad01b..9223facc9 100755 --- a/setup.py +++ b/setup.py @@ -69,6 +69,7 @@ setup( 'Framework :: Django', 'Framework :: Django :: 1.10', 'Framework :: Django :: 1.11', + 'Framework :: Django :: 2.0', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent',