* Sun Nov 11 2018 Thomas Bechtold <email@example.com>
- update to version 3.9.0:
* (fix) link to disqus article on cursor pagination (#6020)
* Add kloudless as a new premium sponsor (#6241)
* Add building with drf book (#6102)
* Documentation fix for django-admin commands (#6232)
* Remove unnecessary models.py file (#6142)
* Add Oct 18 release date
* Clean up unnecessary if statement (#6163)
* codecov: enable status for patch/changes, comment: diff (#6080)
* Add "optionals not required" build (#6047)
* Fix typo in docs (#6212)
* Update JWT docs. (#6138)
* Fix dist build (#6139)
* Add Django 2.1 to classifiers (#6099)
* Correct schema parsing for JSONField (#5878)
* Ensure that html forms (multipart form data) respect optional fields (#5927)
* Render markdown readme on PyPI (#6004)
* requirements-testing: update pytest and pytest-django (#5972)
* tox/pytest: move posargs, use -ra (#6039)
* Fixed instance being overwritten in pk-only optimization try/except block (#5747)
* Update to Django 2.0 Routing Syntax (#6049)
* requirements-optionals: use psycopg2-binary (#5969)
* [DOCS] python print syntax
* Added djangorestframework-datatables to third-party packages (#5931)
* Fix upload parser test (#6044)
* Allow nullable BooleanField in Django 2.1 (#6183)
* Simplify job matrix on Travis (#6174)
* tests: fix skipping with TestPosgresFieldsMapping (#5965)
* Add docs link to Caching API Guide. (#6012)
* Allow hashing of ErrorDetail to fix #5919 (#5932)
* tests: fix usage of transaction.non_atomic_requests (#6043)
* Add (beginning of) 3.9 release announcement.
* Move guardian imports out of compat (#6054)
* Update codecov.yml
* Removed exclude_from_schema per deprecation policy.
* Bring docs license text up to date
* Update 3.9 announcement
* Add `OpenAPIRenderer` and `generate_schema` management command. (#6229)
* updated tox and travis for django 2.1 alpha1
* Improvements to ViewSet extra actions (#5605)
* Updated list_route() and detail_route() deprecations.
* Update the http signature auth library ref link (#5997)
* Update release notes and add deprecation note for Django Guardian backend.
* Fix schemas for extra actions (#5992)
* permissions: Allow permissions to be composed (#5753)
* Add minimal codecov comment (#6077)
* tests/test_permissions.py: do not add view perm for dj21 (#6055)
* pytest: use --strict (#5966)
* Drop Django 1.10 support (#5657)
* Update version for v3.9.0
* Render descriptions (from help_text) using safe (#5869)
* fix e.indexOf is not a function error (#5982)
* Add NotImplementedError to coverage exclusion (#6057)
* tests: fix test_write_only_fields not being executed (#5971)
* Change ISO 8601 date format to exclude year/month (#5936)
* Remove unnecessary use of compat shim six.binary_type (#6189)
* Fix spelling error (#6198)
* Update .gitignore
* update testing.md - fixes related to RequestsClient (#5959)
* Handle models without .objects manager in ModelSerializer. (#6111)
* Add missing comma (#5978)
* Update LICENSE.md
* Prefer https:// for URLs when available throughout project (#6208)
* Deprecate DjangoObjectPermissionsFilter (#6075)
* Prefer io.BytesIO over six; available on all supported Pythons (#6168)
* Documentation: Correct the signature for HyperlinkedRelatedField.get_object()
* Fix exceptions.md (#6003)
* Rename base_name => basename for consistency's sake (#5990)
* Fix docs typos (#6195)
* Add drf-renderer-xlsx package. (#6147)
* Update codecov.yml (#6224)
* runtests.py: clean up PYTEST_ARGS (#6040)
* Add Load Impact to premium sponsors (#6176)
* Use [tool:pytest] header in setup.cfg (#6045)
* Fix grammar mistake in html-and-forms.md (#6070)
* Include coverage for tests (#5970)
* Fix Load Impact URL
* Add release note for #6073
* Added pagination section to the quickstart page (#5987)
* Add "Community" section to docs, minor cleanup (#5993)
* Delete config
* requirements-optionals.txt: bump psycopg2 to 2.7.4 (#5967)
* Delete .editorconfig
* Fixed AttributeError from items filter when value is None (#5981)
* tests: remove some dead code, use `assert 0` for never called methods (#5973)
* Mention Django 2.1 compat where missing (#6158)
* Remove dot character from "pagination_class" (#6137)
* Admin renderer urls (#5988)
* Fix deprecation warnings in tests (#6076)
* Update incorrect PyPI URL to register an account
* Fix CSRF cookie check failure when using session auth with django 1.11.6+ (#6113)
* Small grammar correction in quickstart. (#6121)
* Docs: Match original argument names (#5889)
* Adjusted client JWT example (#5944)
* Feature/action docs sections (#6060)
* Higher res. load impact logo
* Removed input value from deault_error_message (#5881)
* [docs] Remove leftover from former python 3.2/3.3 support (#5947)
* Only catch TypeError/ValueError for object lookups (#6028)
* Weakened to PendingDeprecationWarning for `base_name`
* get_error_detail: use error_dict/error_list (#5785)
* Ensure docs sidebar can scroll to bottom. (#5949)
* Add announcement section for Extra Actions in Browsable API
* Add REST APIs with Django book (#6033)
* Fix url for group_names action example (#6036)
* Update tutorial to Django 2.0 routing syntax (#5963) (#5964)
* Add Kloudless logo
* Add Cadre as a premium sponsor (#5941)
* Fix validate_my_field signature
* tests: update pytest/pytest-django (#6042)
* Update all pypi.python.org URLs to pypi.org (#5942)
* Improve ModelSerializer.create() error message. (#6112)
* Update link to django-rest-marshmallow docs (#5925)
* Add Load Impact to README
* Add release notes to dd19a44583e30bdb325da23583f2a934399155e1
* Move pytest config to setup.cfg (#5979)
* Added 3.8 release + updated monthly report link
* Fix typo error, Link to Field (#6078)
* min_value/max_value support in DurationField (#5643)
* Prohibit null characters in CharField by default (#6073)
* Adding release notes
* Fix a typo in the 3.8 announcement (#5940)
* Update tox to use Django v2.1b1 (#6037)
* Release notes to 5174a26ec9d50c7b1e934ee2613de4ae2e2c
* Upgrade Auklet to premium (#6244)
* Test using Django 2.1 final release (#6109)
* Update documenting-your-api.md (#5991)
* remove references to DOAC in docs (#5977)
* Add Python 3.7 support (#6141)
* Problem: autoescape not getting passed to urlize_quoted_links filter (#6191)
* Add spacing around kloudless logo
* Added import statement on filtering docs
* Fix Python 3.8 compatibility (#6154)
* Add OpenAPIRenderer by default, and add schema docs. (#6233)
* Fix action support for ViewSet suffixes (#6081)
* Wed Aug 08 2018 firstname.lastname@example.org
- Trim rhetorics and ensure neutrality of description.
* Wed Aug 01 2018 email@example.com
- Version update to 3.8.2
* Support django 1.11 as minimal
* Add support for django 2.1
* Sun Dec 24 2017 firstname.lastname@example.org
- djangorestframework 3.7 requires Django 1.10+ (see Release Notes)
In particluar, it uses
from django.urls import reverse
that not existed prior 1.10
* Fri Dec 15 2017 email@example.com
- Update to version 3.7.3:
* improvements to schema generation and the interactive API
* Django 2.0 suport.
* Python 3.7 support.
* For more see
* Mon May 15 2017 firstname.lastname@example.org
- update to version 3.6.3:
* Raise 404 if a URL lookup results in ValidationError. (#5126)
* Honor http_method_names on class based view, when generating
API schemas. (#5085)
* Allow overridden get_limit in LimitOffsetPagination to return
all records. (#4437)
* Fix partial update for the ListSerializer. (#4222)
* Render JSONField control correctly in browsable API. (#4999,
* Raise validation errors for invalid datetime in given timezone.
* Support restricting doc & schema shortcuts to a subset of urls.
* Resolve SchemaGenerator error with paginators that have no
page_size attribute. (#5086, #3692)
* Resolve HyperlinkedRelatedField exception on string with %20
instead of space. (#4748, #5078)
* Customizable schema generator classes. (#5082)
* Update existing vary headers in response instead of overwriting
* Support passing .as_view() to view instance. (#5053)
* Use correct exception handler when settings overridden on a
view. (#5055, #5054)
* Update Boolean field to support 'yes' and 'no' values. (#5038)
* Fix unique validator for ChoiceField. (#5004, #5026, #5028)
* Include URL path regexs in API schemas where valid. (#5014)
* Correctly set scheme in coreapi TokenAuthentication. (#5000,
* HEAD requests on ViewSets should not return 405. (#4705, #4973,
* Support usage of 'source' in extra_kwargs. (#4688)
* Fix invalid content type for schema.js (#4968)
* Fix DjangoFilterBackend inheritance issues. (#5089, #5117)
- changes from 3.6.2
* Support for Safari & IE in API docs. (#4959, #4961)
* Add missing mark_safe in API docs template tags. (#4952, #4953)
* Add missing glyicon fonts. (#4950, #4951)
* Fix One-to-one fields in API docs. (#4955, #4956)
* Test clean ups. (#4949)
- changes from 3.6.1
* Ensure markdown dependancy is optional. (#4947)
- changes from 3.5.x:
* Built-in interactive API documentation support.
* Mon Feb 06 2017 email@example.com
- Update to version 3.5.3:
* Use fields or exclude on serializer classes.
* Microsecond precision when returning time or datetime.
* Relational choices no longer displayed in OPTIONS requests.
* Improved schema generation.
* Requests test client.
* Core API client.
* Live tests.
* RAML support.
* Validation codes.
* Client upload & download support.
* Other improvements.
* For details see:
* Fri Apr 01 2016 firstname.lastname@example.org
- Update to version 3.3.3:
* Remove version string from templates. Thanks to @blag for the report and
fixes. (#3878, #3913, #3912)
* Fixes vertical html layout for BooleanField. Thanks to Mikalai Radchuk for
the fix. (#3910)
* Silenced deprecation warnings on Django 1.8. Thanks to Simon Charette for
the fix. (#3903)
* Internationalization for authtoken. Thanks to Michael Nacharov for the fix.
* Fix Token model as abstract when the authtoken application isn't declared.
* Thanks to Adam Thomas for the report. (#3860, #3858)
* Improve Markdown version compatibility. Thanks to Michael J. Schultz for the
fix. (#3604, #3842)
* QueryParameterVersioning does not use DEFAULT_VERSION setting. Thanks to
* Brad Montgomery for the fix. (#3833)
* Add an explicit on_delete on the models. Thanks to Mads Jensen for the fix.
* Fix DateField.to_representation to work with Python 2 unicode. Thanks to
* Mikalai Radchuk for the fix. (#3819)
* Fixed TimeField not handling string times. Thanks to Areski Belaid for the
* Avoid updates of Meta.extra_kwargs. Thanks to Kevin Massey for the report
and fix. (#3805, #3804)
* Fix nested validation error being rendered incorrectly. Thanks to Craig de
Stigter for the fix. (#3801)
* Document how to avoid CSRF and missing button issues with
django-crispy-forms. Thanks to Emmanuelle Delescolle, José Padilla and Luis
* San Pablo for the report, analysis and fix. (#3787, #3636, #3637)
* Improve Rest Framework Settings file setup time. Thanks to Miles Hutson for
the report and Mads Jensen for the fix. (#3786, #3815)
* Improve authtoken compatibility with Django 1.9. Thanks to S. Andrew
Sheppard for the fix. (#3785)
* Fix Min/MaxValueValidator transfer from a model's DecimalField. Thanks to
Kevin Brown for the fix. (#3774)
* Improve HTML title in the Browsable API. Thanks to Mike Lissner for the
report and fix. (#3769)
* Fix AutoFilterSet to inherit from default_filter_set. Thanks to Tom Linford
for the fix. (#3753)
* Fix transifex config to handle the new Chinese language codes. Thanks to
@nypisces for the report and fix. (#3739)
* DateTimeField does not handle empty values correctly. Thanks to Mick Parker for the report and fix. (#3731, #3726)
* Raise error when setting a removed rest_framework setting. Thanks to Luis
San Pablo for the fix. (#3715)
* Add missing csrf_token in AdminRenderer post form. Thanks to Piotr
?niegowski for the fix. (#3703)
* Refactored _get_reverse_relationships() to use correct to_field. Thanks to
Benjamin Phillips for the fix. (#3696)
* Document the use of get_queryset for RelatedField. Thanks to Ryan Hiebert
for the fix. (#3605)
* Fix empty pk detection in HyperlinkRelatedField.get_url. Thanks to @jslang
for the fix (#3962)
* Fri Jul 24 2015 email@example.com
- Update to version 3.1.3:
* A super-smart cursor pagination scheme.
* An improved pagination API, supporting header or in-body pagination styles.
* Pagination controls rendering in the browsable API.
* Better support for API versioning.
* Built-in internationalization support.
* Support for Django 1.8's HStoreField and ArrayField.
* Mon Jul 13 2015 firstname.lastname@example.org
- Fix building on SLES 11
* Sun Jan 11 2015 email@example.com
- Update to version 3.0.3
* Fix MinValueValidator on models.DateField. (#2369)
* Fix serializer missing context when pagination is used. (#2355)
* Namespaced router URLs are now supported by the DefaultRouter. (#2351)
* required=False allows omission of value for output. (#2342)
* Use textarea input for models.TextField. (#2340)
* Use custom ListSerializer for pagination if required. (#2331, #2327)
* Better behavior with null and '' for blank HTML fields. (#2330)
* Ensure fields in exclude are model fields. (#2319)
* Fix IntegerField and max_length argument incompatibility. (#2317)
* Fix the YAML encoder for 3.0 serializers. (#2315, #2283)
* Fix the behavior of empty HTML fields. (#2311, #1101)
* Fix Metaclass attribute depth ignoring fields attribute. (#2287)
* Fix format_suffix_patterns to work with Django's i18n_patterns. (#2278)
* Ability to customize router URLs for custom actions, using url_path. (#2010)
* Don't install Django REST Framework as egg. (#2386)
- Provide and obsolete redundant python-django-rest-framework
* Fri Nov 29 2013 firstname.lastname@example.org
- update to 2.3.12
* removed patch to removed unicode support to enable SLES11
not needed for SLES11 SP3 with python 2.6.8 and SP2 fails
even if updated patch is applied (and SP3 fails with patch).
* Move to 2.3 base release for the restframework
introduces the ViewSet and Router classes
simplified generic view classes
more flexible filtering
simpler URL lookups
file upload parser
add reverse relationships to the fields option on a ModelSerializer class
get_related_field and get_nested_field method signatures have now changed
mechanics of names and descriptions used in the browseable API are
generated has been modified and cleaned up
* see http://django-rest-framework.org/topics/2.3-announcement for more details
- Remove django-rest-framework-no-unicode-literals.diff; older python
versions are unsupported anyway
* Thu Oct 24 2013 email@example.com
- Require python-setuptools instead of distribute (upstreams merged)
* Sat Feb 16 2013 firstname.lastname@example.org
- Update to 2.2.0
* Python 3 support.
* Added a post_save() hook to the generic views.
* Allow serializers to handle dicts as well as objects.
* Deprecate ManyRelatedField() syntax in favor of RelatedField(many=True)
* Deprecate null=True on relations in favor of required=False.
* Deprecate blank=True on CharFields, just use required=False.
* Deprecate optional obj argument in permissions checks in favor of
* Deprecate implicit hyperlinked relations behavior.
* Bugfix: Fix broken DjangoModelPermissions.
* Bugfix: Allow serializer output to be cached.
* Bugfix: Fix styling on browsable API login.
* Bugfix: Fix issue with deserializing empty to-many relations.
* Bugfix: Ensure model field validation is still applied for ModelSerializer
subclasses with an custom .restore_object() method.
- Disable unicode_literals feature on older Python
* Mon Jan 21 2013 email@example.com
- Update to 2.1.16:
* Deprecate django.utils.simplejson in favor of Python 2.6's built-in json
* Bugfix: auto_now, auto_now_add and other editable=False fields now default
* Bugfix: PK fields now only default to read-only if they are an AutoField
or if editable=False.
* Bugfix: Validation errors instead of exceptions when serializers receive
* Bugfix: Validation errors instead of exceptions when related fields
receive incorrect types.
* Bugfix: Handle ObjectDoesNotExist exception when serializing null reverse
* Note: Prior to 2.1.16, The Decimals would render in JSON using floating
point if simplejson was installed, but otherwise render using string
notation. Now that use of simplejson has been deprecated, Decimals will
consistently render using string notation. See #582 for more details.
* Added PATCH support.
* Added RetrieveUpdateAPIView.
* Remove unused internal save_m2m flag on ModelSerializer.save().
* Tweak behavior of hyperlinked fields with an explicit format suffix.
* Relation changes are now persisted in .save() instead of in
* Bugfix: Fix issue with FileField raising exception instead of validation
error when files=None.
* Bugfix: Partial updates should not set default values if field is not
* Tue Jan 01 2013 firstname.lastname@example.org
- Update to 2.1.14:
* Bugfix: ModelSerializers now include reverse FK fields on creation.
* Bugfix: Model fields with blank=True are now required=False by default.
* Bugfix: Nested serializers now support nullable relationships.
* Note: From 2.1.14 onwards, relational fields move out of the fields.py
module and into the new relations.py module, in order to seperate them
from regular data type fields, such as CharField and IntegerField. This
change will not affect user code, so long as it's following the
recommended import style of from rest_framework import serializers and
refering to fields using the style serializers.PrimaryKeyRelatedField.
* Support configurable STATICFILES_STORAGE storage.
* Bugfix: Related fields now respect the required flag, and may be
* Bugfix: Fix bug that could occur using ChoiceField.
* Bugfix: Fix exception in browseable API on DELETE.
* Bugfix: Fix issue where pk was was being set to a string if set by URL
* Bugfix: Fix issue with M2M fields in browseable API.
* Bugfix: Ensure read-only fields don't have model validation applied.
* Bugfix: Fix hyperlinked fields in paginated results.
* Bugfix: Fix broken nested serialization.
* Bugfix: Fix Meta.fields only working as tuple not as list.
* Bugfix: Edge case if unnecessarily specifying required=False on read only
* Fix for creating nullable Foreign Keys with '' as well as None.
* Added null=<bool> related field option.
* Serializers now properly support nullable Foreign Keys.
* Serializer validation now includes model field validation, such as
* Support 'true' and 'false' string values for BooleanField.
* Added pickle support for serialized data.
* Support source='dotted.notation' style for nested serializers.
* Make Request.user settable.
* Bugfix: Fix RegexField to work with BrowsableAPIRenderer
* Bugfix: Unfix DjangoModelPermissions. (I am a doofus.)
* Bugfix: Fix DjangoModelPermissions.
* Support for partial updates with serializers.
* Added RegexField.
* Added SerializerMethodField.
* Serializer performance improvements.
* Added obtain_token_view to get tokens when using TokenAuthentication.
* Bugfix: Django 1.5 configurable user support for TokenAuthentication.
* Wed Nov 21 2012 email@example.com
- Update to 2.1.3:
* Added FileField and ImageField. For use with MultiPartParser.
* Added URLField and SlugField.
* Support for read_only_fields on ModelSerializer classes.
* Support for clients overriding the pagination page sizes. Use the
PAGINATE_BY_PARAM setting or set the paginate_by_param attribute on a
* 201 Responses now return a 'Location' header.
* Bugfix: Serializer fields now respect max_length.
* Tue Nov 13 2012 firstname.lastname@example.org
- Update to 2.1.2:
* Filtering support.
* Bugfix: Support creation of objects with reverse M2M relations.
* Support use of HTML exception templates. Eg. 403.html
* Hyperlinked fields take optional slug_field, slug_url_kwarg and
* Bugfix: Deal with optional trailing slashs properly when generating
* Bugfix: Make textareas same width as other fields in browsable API.
* Private API change: .get_serializer now uses same instance and data
ordering as serializer initialization.
* Serializer instance and data keyword args have their position swapped.
* queryset argument is now optional on writable model fields.
* Hyperlinked related fields optionally take slug_field and slug_url_kwarg
* Support Django's cache framework.
* Minor field improvements. (Don't stringify dicts, more robust many-pk
* Bugfix: Support choice field in Browseable API.
* Bugfix: Related fields with read_only=True do not require a queryset
* Fix issues with pk related fields in the browsable API.
* Add support for relational fields in the browsable API.
* Added SlugRelatedField and ManySlugRelatedField.
* If PUT creates an instance return '201 Created', instead of '200 OK'.
* Fix all of the things. (Well, almost.)
* For more information please see the 2.0 announcement.
* Supports Django 1.5.
* Fixes issues with 'HEAD' method.
* Allow views to specify template used by TemplateRenderer
* More consistent error responses
* Some serializer fixes
* Fix internet explorer ajax behaviour
* Minor xml and yaml fixes
* Improve setup (eg use staticfiles, not the defunct ADMIN_MEDIA_PREFIX)
* Sensible absolute URL generation, not using hacky set_script_prefix
* Added DjangoModelPermissions class to support django.contrib.auth style
* Use staticfiles for css files.
* Easier to override. Won't conflict with customised admin styles (eg
* Templates are now nicely namespaced.
* Allows easier overriding.
* Drop implied 'pk' filter if last arg in urlconf is unnamed.
* Too magical. Explict is better than implicit.
* Saner template variable autoescaping.
* Tider setup.py
* Updated for URLObject 2.0
* Bug with PerUserThrottling when user contains unicode chars.
* Fix 403 for POST and PUT from the UI with UserLoggedInAuthentication
* serialize_model method in serializer.py may cause wrong value (#73)
* Fix Error when clicking OPTIONS button (#146)
* And many other fixes
* Remove short status codes
* Zen of Python: "There should be one-- and preferably only one --obvious
way to do it."
* get_name, get_description become methods on the view - makes them
* Improved model mixin API - Hooks for build_query, get_instance_data,
get_model, get_queryset, get_ordering
- Run tests
- Ran spec-cleaner on spec
* Thu Jan 12 2012 email@example.com
- Initial release
* Mon Jan 06 2020 Tomá? Chvátal <firstname.lastname@example.org>
- Update to 3.11.0:
* various minor updates
* django 3.x compatibility
* Mon Sep 16 2019 Tomá? Chvátal <email@example.com>
- Update to 3.10.3:
* Drop python2 support
* Various bugfixes
* Mon May 06 2019 Tomá? Chvátal <firstname.lastname@example.org>
- Update to 3.9.3:
* This is the last Django REST Framework release that will support Python 2.
* Adjusted the compat check for django-guardian to allow the last guardian
version (v1.4.9) compatible with Python 2. #6613
* Wed Mar 06 2019 John Vandenberg <email@example.com>
- Fix broken suggestion python-psycopg2
- Increased optional dependency django-guardian >= 1.5.0
- Update to v3.9.2
* Routers: invalidate `_urls` cache on `register()`
* Deferred schema renderer creation to avoid requiring pyyaml
* Added 'request_forms' block to base.html
* Fixed SchemaView to reset renderer on exception
* Update Django Guardian dependency
* Ensured support for Django 2.2
* Made templates compatible with session-based CSRF
* Adjusted field `validators` to accept non-list iterables
* Added SearchFilter.get_search_fields() hook
* Fix DeprecationWarning when accessing collections.abc classes via collections
* Allowed Q objects in limit_choices_to introspection
* Added lazy evaluation to composed permissions
* Add negation ~ operator to permissions composition
* Avoided calling distinct on annotated fields in SearchFilter
* Introduced `RemovedInDRF?Warning` classes to simplify deprecations
* Fri Mar 01 2019 Tomá? Chvátal <firstname.lastname@example.org>
- Switch to multibuild to avoid buildcycle with django-filter
* Sun Feb 24 2019 John Vandenberg <email@example.com>
- Activate test suite
- Add Recommends and Suggests for optional runtime dependencies
- Update to v3.9.1
* Resolve XSS issue in browsable API
* Resolve issues with composable permissions
* Respect `limit_choices_to` on foreign keys