Skip to content

Version 3.7.4 Release #5650

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Dec 20, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
105 changes: 99 additions & 6 deletions docs/topics/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`,
Expand All @@ -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
Expand Down Expand Up @@ -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


<!-- 3.0.1 -->
Expand Down Expand Up @@ -1640,3 +1682,54 @@ For older release notes, [please see the version 2.x documentation][old-release-

<!-- 3.7.3 -->
[gh5567]: https://github.com/encode/django-rest-framework/issues/5567

<!-- 3.7.4 -->
[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

2 changes: 1 addition & 1 deletion rest_framework/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
Binary file modified rest_framework/locale/nb/LC_MESSAGES/django.mo
Binary file not shown.
33 changes: 17 additions & 16 deletions rest_framework/locale/nb/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Håken Lid <[email protected]>, 2017
# Petter Kjelkenes <[email protected]>, 2015
# Thomas Bruun <[email protected]>, 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-11-01 09:58+0000\n"
"Last-Translator: Thomas Bruun <thomas.bruun@gmail.com>\n"
"PO-Revision-Date: 2017-11-28 15:25+0000\n"
"Last-Translator: Håken Lid <haakenlid@gmail.com>\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"
Expand All @@ -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."
Expand Down Expand Up @@ -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."
Expand All @@ -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."
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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."
Expand Down
Binary file modified rest_framework/locale/pt_BR/LC_MESSAGES/django.mo
Binary file not shown.
29 changes: 15 additions & 14 deletions rest_framework/locale/pt_BR/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
# Ederson Mota Pereira <[email protected]>, 2015
# Filipe Rinaldi <[email protected]>, 2015
# Hugo Leonardo Chalhoub Mendonça <[email protected]>, 2015
# Jonatas Baldin <[email protected]>, 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 <tom@tomchristie.com>\n"
"PO-Revision-Date: 2017-12-06 09:53+0000\n"
"Last-Translator: Jonatas Baldin <jonatas.baldin@gmail.com>\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"
Expand Down Expand Up @@ -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."
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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."
Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ def get_version(package):
'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',
Expand Down