Versioning
Minor version numbers (0.0.x) are old for changes which can perhaps well be API acceptable. You wants so to give a steal to between minor level releases without any other code changes.
Medium version numbers (0.x.0) can also consist of API changes, in accordance with the deprecation coverage. You ought to be taught the liberate notes fastidiously earlier than upgrading between medium level releases.
Critical version numbers (x.0.0) are reserved for wide mission milestones.
Deprecation coverage
REST framework releases discover a proper deprecation coverage, which is in accordance with Django’s deprecation coverage.
The timeline for deprecation of a feature most modern in version 1.0 would work as follows:
-
Model 1.1 would remain completely backwards acceptable with 1.0, but would elevate
RemovedInDRF13Warning
warnings, subclassingPendingDeprecationWarning
, ought to you make use of the feature which can perhaps well be due to the be deprecated. These warnings are soundless by default, but can even be explicitly enabled for folks that’re ready to start migrating any required changes. For instance ought to you start working your tests usingpython -Wd manage.py test
, you are going to be warned of any API changes you’ve got gotten to rep. -
Model 1.2 would escalate these warnings to subclass
DeprecationWarning
, which is loud by default. -
Model 1.3 would remove the deprecated bits of API completely.
Reward that in accordance with Django’s coverage, any parts of the framework no longer mentioned in the documentation ought to usually be regarded as non-public API, and ought to be area to change.
Upgrading
To present a steal to Django REST framework to the most modern version, use pip:
pip install -U djangorestframework
You may be ready to resolve your currently installed version using pip show
:
pip show djangorestframework
3.15.x sequence
3.15.0
Date: 15th March 2024
- Django 5.0 and Python 3.12 reinforce [[#9157] (https://github.com/encode/django-relaxation-framework/pull/9157)]
- Exercise POST plot in location of GET to label logout in browsable API [[9208] (https://github.com/encode/django-relaxation-framework/pull/9208)]
- Added jQuery 3.7.1 reinforce & dropped outdated version [#9094]
- Exercise str as default path converter [#9066]
- Doc reinforce for http.HTTPMethod in the @action decorator added in Python 3.11 [#9067]
- Update exceptions.md [#9071]
- Partial serializer wouldn’t receive required fields [#7563]
- Propagate ‘default’ from model area to serializer area. [#9030]
- Enable to override puny one.run_validation call in ListSerializer [#8035]
- Align SearchFilter behaviour to django.contrib.admin search [#9017]
- Class name added to unknown area error [#9019]
- Fix: Pagination response schemas. [#9049]
- Fix picks in ChoiceField to reinforce IntEnum [#8955]
- Fix
SearchFilter
rendering search area with invalid price [#9023] - Fix OpenAPI Schema yaml rendering for
timedelta
[#9007] - Fix
NamespaceVersioning
ignoringDEFAULT_VERSION
on non-None namespaces [#7278] - Added Deprecation Warnings for CoreAPI [#7519]
- Eradicated utilization of
field.choices
that prompted paunchy table load [#8950] - Enable mixed casing of string values for
BooleanField
validation [#8970] - Fixes
BrowsableAPIRenderer
for utilization withListSerializer
. [#7530] - Swap semantic of
OR
of two permission classes [#7522] - Put off dependency on
pytz
[#8984] - Make set_value a mode within
Serializer
[#8001] - Fix URLPathVersioning reverse fallback [#7247]
- Warn about Decimal kind in min_value and max_value arguments of DecimalField [#8972]
- Fix mapping for need values [#8968]
- Refactor be taught characteristic to use context supervisor for file coping with [#8967]
- Fix: fallback on CursorPagination ordering if unset on the glimpse [#8954]
- Changed
OrderedDict
withdict
[#8964] - Refactor get_field_info technique to incorporate max_digits and decimal_places attributes in SimpleMetadata class [#8943]
- Implement
__eq__
for validators [#8925] - Make certain that CursorPagination respects nulls in the ordering area [#8912]
- Exercise ZoneInfo as fundamental source of timezone files [#8924]
- Add username search area for TokenAdmin (#8927) [#8934]
- Address Nested Relation in SlugRelatedField when many=Misleading [#8922]
- Bump version of jQuery to 3.6.4 & up to this level ref hyperlinks [#8909]
- Enhance UniqueConstraint [#7438]
- Enable Inquire, Response, Self-discipline, and GenericAPIView to be subscriptable. This permits the classes to be made generic for kind checking. [#8825]
- Feat: Add some changes to ValidationError to reinforce django vogue validation errors [#8863]
- Fix Admire
can_read_model
permission in DjangoModelPermissions [#8009] - Add SimplePathRouter [#6789]
- Re-prefetch connected objects after updating [#8043]
- Fix FilePathField required argument [#8805]
- Elevate ImproperlyConfigured exception if
basename
is no longer distinctive [#8438] - Exercise PrimaryKeyRelatedField pkfield in openapi [#8315]
- replace partition with split in BasicAuthentication [#8790]
- Fix BooleanField’s allow_null behavior [#8614]
- Address Django’s ValidationErrors in ListField [#6423]
- Put off a puny bit inline CSS. Add CSP nonce the assign it goes to be required and is readily accessible [#8783]
- Exercise autocomplete widget for user option in Token admin [#8534]
- Make browsable API acceptable with solid CSP [#8784]
- Steer clear of inline script execution for injecting CSRF token [#7016]
- Mitigate global dependency on inflection #8017 [#8017] [#8781]
- Register Django urls [#8778]
- Implemented Verbose Title Translation for TokenProxy [#8713]
- Neatly address OverflowError in DurationField deserialization [#8042]
- Fix OpenAPI operation name plural precisely [#8017]
- Symbolize SafeString as unpleasant string on schema rendering [#8429]
- Fix #8771 – Checking for authentication although
_ignore_model_permissions=True
[#8772] - Fix 404 when online page quiz parameter is empty string [#8578]
- Fixes instance register ListSerializer.to_representation [#8726] [#8727]
- FloatField will rupture if the enter is a quantity that is simply too colossal [#8725]
- Add missing DurationField to SimpleMetada label_lookup [#8702]
- Add reinforce for Python 3.11 [#8752]
- Make request consistently readily accessible in pagination classes [#8764]
- Possibility to remove trailing zeros on DecimalFields illustration [#6514]
- Add a mode for getting serializer area name (OpenAPI) [#7493]
- Add
__eq__
plot forOperandHolder
class [#8710] - Steer clear of importing
django.test
equipment when no longer checking out [#8699] - Preserve exception messages for wrapped Django exceptions [#8051]
- Embody
examples
andformat
to OpenAPI schema of CursorPagination [[#8687] (https://github.com/encode/django-relaxation-framework/pull/8687)] [#8686] - Fix limitless recursion with deepcopy on Inquire [#8684]
- Refactor: Substitute are attempting/aside from with contextlib.suppress() [#8676]
- Minor repair to SerializeMethodField docstring [#8629]
- Minor refactor: Pointless use of list() characteristic [#8672]
- Pointless list comprehension [#8670]
- Exercise staunch class to illustrate most modern deprecation [#8665]
3.14.x sequence
3.14.0
Date: twenty 2nd September 2022
- Django 2.2 is no longer any longer supported. [#8662]
- Django 4.1 compatibility. [#8591]
- Add
--api-version
CLI plot togenerateschema
administration uncover. [#8663] - Implement
is_valid(raise_exception=False)
as a keyword-only argument. [#7952] - Cessation calling
set_context
on Validators. [#8589] - Return
NotImplemented
fromErrorDetails.__ne__
. [#8538] - Accomplish no longer rob into legend
DateTimeField.default_timezone
when a personalized timezone is plot. [#8531] - Make relative URLs clickable in Browsable API. [#8464]
- Enhance
ManyRelatedField
falling encourage to the default price when the attribute specified by dot notation doesn’t exist. MatchesManyRelatedField.get_attribute
toField.get_attribute
. [#7574] - Make
schemas.openapi.get_reference
public. [#7515] - Make
ReturnDict
reinforcedict
union operators on Python 3.9 and later. [#8302] - Update throttling to envision if
request.user
is plot earlier than checking if the user is authenticated. [#8370]
3.13.x sequence
3.13.1
Date: 15th December 2021
- Revert schema naming changes with characteristic basically basically based
@api_view
. [#8297]
3.13.0
Date: Thirteenth December 2021
- Django 4.0 compatibility. [#8178]
- Add
max_length
andmin_length
alternatives toListSerializer
. [#8165] - Add
get_request_serializer
andget_response_serializer
hooks toAutoSchema
. [#7424] - Fix OpenAPI illustration of null-ready be taught only fields. [#8116]
- Admire
UNICODE_JSON
setting in API schema outputs. [#7991] - Fix for
RemoteUserAuthentication
. [#7158] - Make Self-discipline constructors keyword-only. [#7632]
3.12.x sequence
3.12.4
Date: twenty sixth March 2021
- Revert use of
deque
in location oflist
for monitoring throttling.history
. (Because of the incompatibility with DjangoRedis cache backend. Peep #7870) [#7872]
3.12.3
Date: twenty fifth March 2021
- Neatly address ATOMIC_REQUESTS when just a few database configurations are old. [#7739]
- Bypass
COUNT
quiz whenLimitOffsetPagination
is configured but pagination params are no longer included on the request. [#6098] - Admire
allow_null=True
onDecimalField
. [#7718] - Enable title cased
"Yes"
/"No"
values withBooleanField
. [#7739] - Add
PageNumberPagination.get_page_number()
plot for overriding behavior. [#7652] - Fixed rendering of timedelta values in OpenAPI schemas, when most modern as default, min, or max fields. [#7641]
- Render JSONFields with indentation in browsable API kinds. [#6243]
- Put off pointless database quiz in admin Token views. [#7852]
- Elevate validation errors when bools are passed to
PrimaryKeyRelatedField
fields, in location of casting to ints. [#7597] - Accomplish no longer consist of model properties as automatically generated ordering fields with
OrderingFilter
. [#7609] - Exercise
deque
in location oflist
for monitoring throttling.history
. [#7849]
3.12.2
Date: Thirteenth October 2020
- Fix distress if
rest_framework.authtoken.models
is imported, butrest_framework.authtoken
is no longer in INSTALLED_APPS. [#7571] - Ignore subclasses of BrowsableAPIRenderer in OpenAPI schema. [#7497]
- Narrower exception catching in serilizer fields, to be certain that any errors in broken
get_queryset()
methods are no longer masked. [#7480]
3.12.1
Date: twenty eighth September 2020
- Add
TokenProxy
migration. [#7557]
3.12.0
Date: twenty eighth September 2020
- Add
--file
plot togenerateschema
uncover. [#7130] - Enhance
tags
for OpenAPI schema generation. Peep the schema docs. [#7184] - Enhance customising the operation ID for schema generation. Peep the schema docs. [#7190]
- Enhance OpenAPI formulation for schema generation. Peep the schema docs. [#7124]
- The following methods on
AutoSchema
turn out to be public API:get_path_parameters
,get_pagination_parameters
,get_filter_parameters
,get_request_body
,get_responses
,get_serializer
,get_paginator
,map_serializer
,map_field
,map_choice_field
,map_field_validators
,allows_filters
. Peep the schema docs - Add reinforce for Django 3.1’s database-agnositic
JSONField
. [#7467] SearchFilter
now helps nested search onJSONField
andHStoreField
model fields. [#7121]SearchFilter
now helps looking out onannotate()
fields. [#6240]- The authtoken model now no longer exposes the
pk
in the admin URL. [#7341] - Add
__repr__
for Inquire cases. [#7239] - UTF-8 decoding with Latin-1 fallback for frequent auth credentials. [#7193]
- CharField treats surrogate characters as a validation failure. [#7026]
- Accomplish no longer consist of callables as default values in schemas. [#7105]
- Make stronger
ListField
schema output to incorporate all readily accessible puny one files. [#7137] - Enable
default=False
to be included forBooleanField
schema outputs. [#7165] - Embody
"type"
files inChoiceField
schema outputs. [#7161] - Embody
"type": "object"
on schema objects. [#7169] - Accomplish no longer consist of enlighten in schema output for DELETE requests. [#7229]
- Fix schema kinds for
DecimalField
. [#7254] - Fix schema generation for
ObtainAuthToken
glimpse. [#7211] - Enhance passing
context=...
to glimpse.get_serializer()
methods. [#7298] - Stream personalized code to
PermissionDenied
if permission class has one plot. [#7306] - Embody “instance” in schema pagination output. [#7275]
- Default assign of residing code of 201 on schema output for POST requests. [#7206]
- Exercise camelCase for operation IDs in schema output. [#7208]
- Warn if reproduction operation IDs exist in schema output. [#7207]
- Make stronger coping with of decimal kind when mapping
ChoiceField
to a schema output. [#7264] - Disable YAML aliases for OpenAPI schema outputs. [#7131]
- Fix action URL names for APIs included below a namespaced URL. [#7287]
- Update jQuery version from 3.4 to 3.5. [#7313]
- Fix
UniqueTogether
coping with when serializer fields usesource=...
. [#7143] - HTTP
HEAD
requests now plotself.action
precisely on a ViewSet instance. [#7223] - Return a right OpenAPI schema for the case the assign no API schema paths exist. [#7125]
- Embody tests in equipment distribution. [#7145]
- Enable kind checkers to reinforce annotations like
ModelSerializer[Author]
. [#7385] - Accomplish no longer consist of invalid
charset=None
fragment in the requestContent-Type
header when using APIClient. [#7400] - Fix
Z
/z
tokens in OpenAPI regexs. [#7389] - Fix
PrimaryKeyRelatedField
andHyperlinkedRelatedField
when source area is de facto a property. [#7142] Token.generate_key
is now a class plot. [#7502]@action
warns if plot is wrapped in a decorator that doesn’t defend files using@functools.wraps
. [#7098]- Deprecate
serializers.NullBooleanField
in favour ofserializers.BooleanField
withallow_null=True
[#7122]
3.11.x sequence
3.11.2
Date: thirtieth September 2020
- Safety: Fall
urlize_quoted_links
template mark in favour of Django’s constructed-inurlize
. Eliminates a XSS vulnerability for some forms of declare material in the browsable API.
3.11.1
Date: 5th August 2020
- Fix compat with Django 3.1
3.11.0
Date: 12th December 2019
- Fall
.set_context
API in favour of arequires_context
marker. - Changed default widget for TextField with picks to come to a decision out box. #6892
- Supported nested writes on non-relational fields, such as JSONField. #6916
- Embody request/response media kinds in OpenAPI schemas, in line with configured parsers/renderers. #6865
- Embody operation descriptions in OpenAPI schemas, in line with the docstring on the glimpse. #6898
- Fix illustration of serializers with all non-compulsory fields in OpenAPI schemas. #6941, #6944
- Fix illustration of
serializers.HStoreField
in OpenAPI schemas. #6914 - Fix OpenAPI generation when title or version is no longer supplied. #6912
- Exercise
int64
illustration for wide integers in OpenAPI schemas. #7018 - Improved error messages if no
.to_representation
implementation is supplied on a area subclass. #6996 - Fix for serializer classes that use just a few inheritance. #6980
- Fix for reversing Hyperlinked URL fields with percent encoded formulation in the lumber. #7059
- Update bootstrap to 3.4.1. #6923
3.10.x sequence
3.10.3
Date: 4th September 2019
- Embody API version in OpenAPI schema generation, defaulting to empty string.
- Add pagination properties to OpenAPI response schemas.
- Add missing “description” property to OpenAPI response schemas.
- Finest consist of “required” for non-empty cases in OpenAPI schemas.
- Fix response schemas for “DELETE” case in OpenAPI schemas.
- Exercise an array kind for list glimpse response schemas.
- Exercise consistent
lowerInitialCamelCase
vogue in OpenAPI operation IDs. - Fix
minLength
/maxLength
/minItems
/maxItems
properties in OpenAPI schemas. - Finest call
FileField.url
as soon as in serialization, for improved performance. - Fix an edge case the assign throttling calculations would possibly well error after a configuration change.
3.10.2
Date: Twenty ninth July 2019
- Rather heaps of
OpenAPI
schema fixes. - Skill to specify urlconf in include_docs_urls.
3.10.1
Date: 17th July 2019
- Accomplish no longer consist of autocomplete fields on TokenAuth admin, since it forces constraints on personalized user devices & admin.
- Require
uritemplate
for OpenAPI schema generation, but no longercoreapi
.
3.10.0
Date: 15th July 2019
- Switch to OpenAPI schema generation.
- Fall Python 2 reinforce.
- Add
generateschema --generator_class
CLI option - As a lot as this level PyYaml dependency for OpenAPI schema generation to
pyyaml>=5.1
#6680 - Resolve DeprecationWarning with markdown. #6317
- Exercise
user.get_username
in templates, as adverse touser.username
. - Fix for cursor pagination distress that can perhaps well happen after object deletions.
- Fix for nullable fields with
source="*"
- Repeatedly practice all throttle classes for the length of throttling checks.
- Updates to jQuery and Markdown dependencies.
- Accomplish no longer strict disallow redundant
SerializerMethodField
area name arguments. - Accomplish no longer render additional actions in browable API if no longer authenticated.
- Strip null characters from search parameters.
- Deprecate the
detail_route
decorator in resolve on ofaction
, which accepts adetail
bool. Exercise@action(detail=True)
as a exchange. gh6687 - Deprecate the
list_route
decorator in resolve on ofaction
, which accepts adetail
bool. Exercise@action(detail=False)
as a exchange. gh6687
3.9.x sequence
3.9.4
Date: 10th Can also 2019
Here’s a maintenance liberate that fixes an error coping with bug below Python 2.
3.9.3
Date: Twenty ninth April 2019
Here is the closing Django REST Framework liberate that can reinforce Python 2.
Guarantee to give a steal to to Python 3 earlier than upgrading to Django REST Framework 3.10.
- Adjusted the compat check for django-guardian to enable the closing guardian
version (v1.4.9) acceptable with Python 2. #6613
3.9.2
Date: third March 2019
- Routers: invalidate
_urls
cache onregister()
#6407 - Deferred schema renderer introduction to raise away from requiring pyyaml. #6416
- Added ‘request_forms’ block to unsafe.html #6340
- Fixed SchemaView to reset renderer on exception. #6429
- Update Django Guardian dependency. #6430
- Ensured reinforce for Django 2.2 #6422 & #6455
- Made templates acceptable with session-basically basically based CSRF. #6207
- Adjusted area
validators
to honest receive non-list iterables. #6282 - Added SearchFilter.get_search_fields() hook. #6279
- Fix DeprecationWarning when gaining access to collections.abc classes via collections #6268
- Allowed Q objects in limit_choices_to introspection. #6472
- Added lazy evaluate to serene permissions. #6463
- Add negation ~ operator to permissions composition #6361
- Shunned calling clear on annotated fields in SearchFilter. #6240
- Launched
RemovedInDRF…Warning
classes to simplify deprecations. #6480
3.9.1
Date: 16th January 2019
- Resolve XSS distress in browsable API. #6330
- Make stronger Bootstrap to 3.4.0 to rep to the backside of XSS distress.
- Resolve issues with composable permissions. #6299
- Admire
limit_choices_to
on international keys. #6371
3.9.0
Date: 18th October 2018
- Improvements to ViewSet additional actions #5605
- Fix
action
reinforce for ViewSet suffixes #6081 - Enable
action
docs sections #6060 - Deprecate the
Router.register
base_name
argument in resolve on ofbasename
. #5990 - Deprecate the
Router.get_default_base_name
plot in resolve on ofRouter.get_default_basename
. #5990 - Swap
CharField
to disallow null bytes. #6073
To revert to the old behavior, subclassCharField
and take awayProhibitNullCharactersValidator
from the validators.
python
class NullableCharField(serializers.CharField):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.validators=[
v
for v in self.validators
if not isinstance(v, ProhibitNullCharactersValidator)
] - Add
OpenAPIRenderer
andgenerate_schema
administration uncover. #6229 - Add OpenAPIRenderer by default, and add schema docs. #6233
- Enable permissions to be serene #5753
- Enable nullable BooleanField in Django 2.1 #6183
- Add checking out of Python 3.7 reinforce #6141
- Take a look at using Django 2.1 closing liberate. #6109
- Added djangorestframework-datatables to third-birthday celebration capabilities #5931
- Swap ISO 8601 date layout to exclude year/month-only alternatives #5936
- Update all pypi.python.org URLs to pypi.org #5942
- Make certain that that html kinds (multipart manufacture files) appreciate non-compulsory fields #5927
- Enable hashing of ErrorDetail. #5932
- Appropriate schema parsing for JSONField #5878
- Render descriptions (from help_text) using safe #5869
- Eradicated enter price from deault_error_message #5881
- Added min_value/max_value reinforce in DurationField #5643
- Fixed instance being overwritten in pk-only optimization are attempting/aside from block #5747
- Fixed AttributeError from objects filter when price is None #5981
- Fixed Javascript
e.indexOf
is no longer a characteristic error #5982 - Fix schemas for additional actions #5992
- Improved get_error_detail to use error_dict/error_list #5785
- Improved URLs in Admin renderer #5988
- Add “Neighborhood” section to docs, minor cleanup #5993
- Moved guardian imports out of compat #6054
- Deprecate the
DjangoObjectPermissionsFilter
class, moved to thedjangorestframework-guardian
equipment. #6075 - Fall Django 1.10 reinforce #5657
- Finest score TypeError/ValueError for object lookups #6028
- Address devices without .objects supervisor in ModelSerializer. #6111
- Make stronger ModelSerializer.originate() error message. #6112
- Fix CSRF cookie check failure when using session auth with django 1.11.6+ #6113
- As a lot as this level JWT docs. #6138
- Fix autoescape no longer getting passed to urlize_quoted_links filter #6191
3.8.x sequence
3.8.2
Date: sixth April 2018
- Fix
read_only
+default
unique_together
validation. #5922 - authtoken.views import coreapi from rest_framework.compat, no longer straight away. #5921
- Docs: Add missing argument ‘ingredient’ to Route #5920
3.8.1
Date: 4th April 2018
-
Exercise old
url_name
behavior in route decorators #5915For
list_route
anddetail_route
aid the old behavior ofurl_name
,
basing it on theurl_path
in location of the characteristic name.
3.8.0
Date: third April 2018
-
Breaking Swap: Alter
read_only
plusdefault
behaviour. #5886read_only
fields will now consistently be excluded from writable fields.Beforehand
read_only
fields with adefault
price would use thedefault
for originate and replace operations.In protest to aid the old behaviour you may well ought to whisk the price of
read_only
fields when callingsave()
in
the glimpse:def perform_create(self, serializer): serializer.save(owner=self.request.user)
Alternatively you can even override
save()
orcreate()
orupdate()
on the serializer as acceptable. -
Appropriate allow_null behaviour when required=Misleading #5888
With out an train
default
,allow_null
implies a default ofnull
for outgoing serialization. Beforehand such
fields had been being skipped when be taught-only or otherwise no longer required.That you are going to bear in mind of backwards compatibility destroy ought to you had been relying on such fields being excluded from the outgoing
illustration. In protest to revive the old behaviour you are going to overridedata
to exclude the world whenNone
.For instance:
@property def data(self): """ Drop `maybe_none` field if None. """ data=super().data if 'maybe_none' in data and data['maybe_none'] is None: del data['maybe_none'] return data
-
Refactor dynamic route generation and provides a steal to viewset action introspectibility. #5705
ViewSet
s had been supplied with recent attributes and strategies that enable
it to introspect its plot of actions and the principle points of the most modern action.- Merged
list_route
anddetail_route
into a singleaction
decorator. - Safe all additional actions on a
ViewSet
with.get_extra_actions()
. - Additional actions now plot the
url_name
andurl_path
on the decorated plot. url_name
is now in line with the characteristic name, in location of theurl_path
,
as the lumber is no longer consistently excellent (e.g., capturing arguments in the lumber).- Enable action url reversing via
.reverse_action()
plot (added in 3.7.4) - Instance reverse call:
self.reverse_action(self.custom_action.url_name)
- Add
detail
initkwarg to illustrate if the most modern action is engaged on a
series or a single instance.
Additional changes:
- Deprecated
list_route
&detail_route
in resolve on ofaction
decorator withdetail
boolean. - Deprecated dynamic list/ingredient route variants in resolve on of
DynamicRoute
withdetail
boolean. - Refactored the router’s dynamic route generation.
list_route
anddetail_route
aid the old behavior ofurl_name
,
basing it on theurl_path
in location of the characteristic name.
- Merged
-
Fix formatting of the three.7.4 liberate demonstrate #5704
- Docs: Update DRF Writable Nested Serializers references #5711
- Docs: Fixed typo in auth URLs instance. #5713
- Make stronger composite area puny one errors #5655
- Disable HTML inputs for dict/list fields #5702
- Fix typo in HostNameVersioning doc #5709
- Exercise rsplit to rep module and classname for imports #5712
- Formalize URLPatternsTestCase #5703
- Add exception translation check #5700
- Take a look at staticfiles #5701
- Add drf-yasg to documentation and schema third birthday celebration capabilities #5720
- Put off unused
compat._resolve_model()
#5733 - Fall compat workaround for unsupported Python 3.2 #5734
- Desire
iter(dict)
overiter(dict.keys())
#5736 - Stream
python_requires
argument to setuptools #5739 - Put off unused hyperlinks from docs #5735
- Desire https protocol for hyperlinks in docs when readily accessible #5729
- Add HStoreField, postgres fields tests #5654
- Repeatedly completely qualify ValidationError in docs #5751
- Put off unreachable code from ManualSchema #5766
- Allowed customising API documentation code samples #5752
- As a lot as this level docs to use
pip show
#5757 - Load ‘static’ in location of ‘staticfiles’ in templates #5773
- Fixed a typo in
fields
docs #5783 - Consult with “NamespaceVersioning” in location of “NamespacedVersioning” in the documentation #5754
- ErrorDetail: add
__eq__
/__ne__
and__repr__
#5787 - Substitute
background-attachment: fixed
in docs #5777 - Make 404 & 403 responses in line with
exceptions.APIException
output #5763 - Petite repair to API documentation: schemas #5796
- Fix schema generation for PrimaryKeyRelatedField #5764
- Symbolize serializer DictField as an Object in schema #5765
- Added docs instance reimplementing ObtainAuthToken #5802
- Add schema to the ObtainAuthToken glimpse #5676
- Fix request formdata coping with #5800
- Fix authtoken views imports #5818
- Update pytest, isort #5815 #5817 #5894
- Fixed full of life timezone coping with for non ISO8601 datetimes. #5833
- Made TemplateHTMLRenderer render IntegerField inputs when price is
0
. #5834 - Corrected endpoint in tutorial directions #5835
- Add Django Leisure Framework Position Filters to Third birthday celebration capabilities #5809
- Exercise single copy of static property. Update jQuery #5823
- Changes ternary conditionals to be PEP308 compliant #5827
- Added hyperlinks to ‘A Todo Checklist API with React’ and ‘Blog API’ tutorials #5837
- Fix comment typo in ModelSerializer #5844
- Add admin to installed apps to raise away from check mess ups. #5870
- Fixed schema for UUIDField in SimpleMetadata. #5872
- Corrected docs on router consist of with namespaces. #5843
- Take a look at using model objects for dotted source default #5880
- Enable traversing nullable connected fields #5849
- Added: Tutorial: Django REST with React (Django 2.0) #5891
- Add
LimitOffsetPagination.get_count
to enable plot override #5846 - Accomplish no longer demonstrate hidden fields in metadata #5854
- Enable OrderingFilter to address an empty tuple (or list) for the ‘ordering’ area. #5899
- Added generic 500 and 400 JSON error handlers. #5904
3.7.x sequence
3.7.7
Date: 21st December 2017
- Fix typo to incorporate *.mo locale files to packaging. #5697, #5695
3.7.6
Date: 21st December 2017
- Add missing *.ico icon files to packaging.
3.7.5
Date: 21st December 2017
- Add missing *.woff2 font files to packaging. #5692
- Add missing *.mo locale files to packaging. #5695, #5696
3.7.4
Date: 20th December 2017
-
Schema: Extract plot for
manual_fields
processing #5633Permits for more straightforward customisation of
manual_fields
processing, shall we embrace
to kind per-plot manual fields.AutoSchema
addsget_manual_fields
,
as the supposed override level, and a utility plotupdate_fields
, to
address by-name area replacement from a list, which, in frequent, you need to no longer
anticipated to override.Reward:
AutoSchema.__init__
now ensuresmanual_fields
is a list.
Beforehand can also had been saved internally asNone
. -
Put off ulrparse compatibility shim; use six as a exchange #5579
- Fall compat wrapper for
TimeDelta.total_seconds()
#5577 - Orderly up all whitespace for the length of mission #5578
- Compat cleanup #5581
- Add pygments CSS block in browsable API views #5584 #5587
- Put off
set_rollback()
from compat #5591 - Fix request body/POST rep entry to #5590
- Rename check to reference staunch distress #5610
- Documentation Fixes #5611 #5612
- Put off references to unsupported Django variations in docs and code #5602
- Take a look at Serializer exclude for declared fields #5599
- Fixed schema generation for filter backends #5613
- Minor cleanup for ModelSerializer tests #5598
- Reimplement request attribute rep entry to w/
__getattr__
#5617 - Fixed SchemaJSRenderer renders invalid Javascript #5607
- Make Django 2.0 reinforce official/train #5619
- Develop kind check on passed request argument #5618
- Fix AttributeError hiding on request authenticators #5600
- Update check requirements #5626
- Docs:
Serializer._declared_fields
enable modifying fields on a serializer #5629 - Fix packaging #5624
- Fix readme rendering for PyPI, add readme manufacture to CI #5625
- Update tutorial #5622
- Non-required fields with
allow_null=True
ought to never suggest a default price #5639 - Docs: Add
allow_null
serialization output demonstrate #5641 - Update to use the Django 2.0 liberate in tox.ini #5645
- Fix
Serializer.data
for Browsable API rendering when supplied invaliddata
#5646 - Docs: Reward AutoSchema obstacles on bare APIView #5649
- Add
.basename
and.reverse_action()
to ViewSet #5648 - Docs: Fix typos in serializers documentation #5652
- Fix
override_settings
compat #5668 - Add DEFAULT_SCHEMA_CLASS setting #5658
- Add docs demonstrate re generated BooleanField being
required=False
#5665 - Add ‘dist’ manufacture #5656
- Fix typo in docstring #5678
- Docs: Add
UNAUTHENTICATED_USER=None
demonstrate #5679 - Update OPTIONS instance from “Documenting Your API” #5680
- Docs: Add demonstrate on object permissions for FBVs #5681
- Docs: Add instance to
to_representation
docs #5682 - Add hyperlink to Classy DRF in docs #5683
- Doc ViewSet.action #5685
- Fix schema docs typo #5687
- Fix URL pattern parsing in schema generation #5689
- Add instance using
source=‘*’
to personalized area docs. #5688 - Fix format_suffix_patterns behavior with Django 2 path() routes #5691
3.7.3
Date: sixth November 2017
- Fix
AppRegistryNotReady
error from contrib.auth glimpse imports #5567
3.7.2
Date: sixth November 2017
- Fixed Django 2.1 compatibility due to the elimination of django.contrib.auth.login()/logout() views. #5510
- Add missing import for TextLexer. #5512
- Alongside side examples and documentation for caching #5514
- Embody date and date-time layout for schema generation #5511
- Exercise triple backticks for markdown code blocks #5513
- Interactive docs – rep backside sidebar objects sticky #5516
- Make clear pagination system check #5524
- Cessation JSONBoundField mangling invalid JSON #5527
- Ranking JSONField render as textarea in Browsable API #5530
- Schema: Exclude OPTIONS/HEAD for ViewSet actions #5532
- Fix ordering for dotted sources #5533
- Fix: Fields with
allow_null=True
ought to signify a default serialization price #5518 - Make certain that Space header is strictly a ‘str’, no longer subclass. #5544
- Add import to instance in api-manual/parsers #5547
- Bag OverflowError for “out of range” datetimes #5546
- Add djangorestframework-rapidjson to third birthday celebration capabilities #5549
- Elevate check coverage for
drf_create_token
uncover #5550 - Add trove classifier for Python 3.6 reinforce. #5555
- Add pip cache reinforce to the Travis CI configuration #5556
- Rename [
wheel
]section to [bdist_wheel
]as the broken-down is legacy #5557 - Fix invalid flee sequence deprecation warnings #5560
- Add interactive docs error template #5548
- Add rounding parameter to DecimalField #5562
- Fix all BytesWarning caught for the length of tests #5561
- Exercise dict and plot literals in location of calls to dict() and plot() #5559
- Swap ImageField validation pattern, use validators from DjangoImageField #5539
- Fix processing unicode symbols in query_string by Python 2 #5552
3.7.1
Date: 16th October 2017
- Fix Interactive documentation consistently makes use of inaccurate for boolean fields in requests #5492
- Make stronger compatibility with Django 2.0 alpha. #5500 #5503
- Improved coping with of schema naming collisions #5486
- Added additional docs and tests round providing a default price for dotted
source
fields #5489
3.7.0
Date: sixth October 2017
- Fix
DjangoModelPermissions
to make certain user authentication earlier than calling the glimpse’sget_queryset()
plot. As a facet attain, this changes the protest of the HTTP plot permissions and authentication checks, and 405 responses will only be returned when authenticated. In protest so that you simply can copy the old behavior, stare the PR for tiny print. #5376 - Deprecated
exclude_from_schema
onAPIView
andapi_view
decorator. Set aside of abodeschema=None
or@schema(None)
as acceptable. #5422 -
Timezone-mindful
DateTimeField
s now appreciate full of life or defaulttimezone
for the length of serialization, in location of consistently using UTC. #5435Resolves inconsistency whereby cases had been serialized with supplied datetime for
create
but UTC forretrieve
. #3732That you are going to bear in mind of backwards compatibility destroy ought to you had been relying on datetime strings being UTC. Ranking consumer clarify datetimes or plot default or full of life timezone (docs) to UTC if wished.
-
Eradicated DjangoFilterBackend inline with deprecation coverage. Exercise
django_filters.rest_framework.FilterSet
and/ordjango_filters.rest_framework.DjangoFilterBackend
as a exchange. #5273 - Accomplish no longer strip microseconds from
time
when encoding. Makes in line withdatetime
.
BC Swap: Beforehand only milliseconds had been encoded. #5440 - Added
STRICT_JSON
setting (defaultTrue
) to steal exception for the prolonged float values (nan
,inf
,-inf
) approved by Python’sjson
module.
BC Swap: Beforehand these values would reworked to corresponding strings. Set aside of abodeSTRICT_JSON
toFalse
to revive the outdated behaviour. #5265 - Add reinforce for
page_size
parameter in CursorPaginator class #5250 - Make
DEFAULT_PAGINATION_CLASS
None
by default.
BC Swap: In case your had been staunch settingPAGE_SIZE
to enable pagination you are going to ought to addDEFAULT_PAGINATION_CLASS
.
The outdated default changed into as soon asrest_framework.pagination.PageNumberPagination
. There may perchance be a system check warning to score this case. You’d also silence that ought to you are setting pagination class on a per-glimpse foundation. #5170 - Bag
APIException
fromget_serializer_fields
in schema generation. #5443 - Enable personalized authentication and permission classes when using
include_docs_urls
#5448 - Defer translated string evaluate on validators. #5452
- Added default price for ‘ingredient’ param into ‘ValidationError’ exception #5342
- Adjust schema get_filter_fields ideas to envision framework #5454
- As a lot as this level check matrix so to add Django 2.0 and descend Django 1.8 & 1.9
BC Swap: This eliminates Django 1.8 and Django 1.9 from Django REST Framework supported variations. #5457 - Fixed a deprecation warning in serializers.ModelField #5058
- Added a more train error message when
get_queryset
returnedNone
#5348 - Fix docs for Response
data
description #5361 - Fix pycache/.pyc excludes when packaging #5373
- Fix default price coping with for dotted sources #5375
- Make certain that content_type is plot when passing empty body to RequestFactory #5351
- Fix ErrorDetail Documentation #5380
- Enable non-compulsory declare material in the generic declare material manufacture #5372
- As a lot as this level supported values for the NullBooleanField #5387
- Fix ModelSerializer personalized named fields with source on model #5388
- Fixed the MultipleFieldLookupMixin documentation instance to effectively check for object stage permission #5398
- Update get_object() instance in permissions.md #5401
- Fix authtoken administration uncover #5415
- Fix schema generation markdown #5421
- Enable
ChoiceField.choices
to be plot dynamically #5426 - Add the mission layout to the quickstart #5434
- Reuse ‘apply_markdown’ characteristic in ‘render_markdown’ templatetag #5469
- Added hyperlinks to
drf-openapi
equipment in docs #5470 - Added docstrings code highlighting with pygments #5462
- Fixed documentation rendering for views named
data
#5472 - Docs: Clarified ‘to_internal_value()’ validation behavior #5466
- Fix missing six.text_type() call on APIException.str #5476
- Doc documentation.py #5478
- Fix naming collisions in Schema Generation #5464
- Name Django’s authenticate characteristic with the request object #5295
- Update coreapi JS to 0.1.1 #5479
- Ranking
is_list_view
recognise RetrieveModel… views #5480 - Put off Django 1.8 & 1.9 compatibility code #5481
- Put off deprecated schema code from DefaultRouter #5482
- Refactor schema generation to enable per-glimpse customisation.
BC Swap:SchemaGenerator.get_serializer_fields
has been refactored asAutoSchema.get_serializer_fields
and drops theview
argument [#5354][gh5354]
3.6.x sequence
3.6.4
Date: 21st August 2017
- Ignore any invalidly fashioned quiz parameters for OrderingFilter. #5131
- Make stronger reminiscence footprint when reading wide JSON requests. #5147
- Fix schema generation for pagination. #5161
- Fix exception when
HTML_CUTOFF
is plot toNone
. #5174 - Fix browsable API no longer supporting
multipart/form-data
precisely. #5176 - Fixed
test_hyperlinked_related_lookup_url_encoded_exists
. #5179 - Guarantee max_length is in FileField kwargs. #5186
- Fix
list_route
&detail_route
with kwargs incorporates curly bracket inurl_path
#5187 - Add Django plot up uncover to originate a DRF user Token. #5188
- Make certain that API documentation templates enact no longer check for user authentication #5162
- Fix special case the assign OneToOneField is also fundamental key. #5192
- Added aria-heed and a recent assign for accessibility capabilities in unsafe.html #5196
- Quote nested API parameters in api.js. #5214
- Set aside of abode ViewSet args/kwargs/request earlier than dispatch. #5229
- Added unicode reinforce to SlugField. #5231
- Fix HiddenField appears to be like in Raw Knowledge manufacture initial declare material. #5259
- Elevate validation error on invalid timezone parsing. #5261
- Fix SearchFilter to-many behavior/performance. #5264
- Simplified chained comparisons and minor code fixes. #5276
- RemoteUserAuthentication, docs, and tests. #5306
- Revert “Cached the world’s root and context property” #5313
- Fix introspection of list area in schema. #5326
- Fix interactive docs for just a few nested and additional methods. #5334
- Fix/remove undefined template var “schema” #5346
3.6.3
Date: 12th Can also 2017
- Elevate 404 if a URL lookup ends up in ValidationError. (#5126)
- Honor http_method_names on class basically basically based glimpse, when producing API schemas. (#5085)
- Enable overridden
get_limit
in LimitOffsetPagination to method encourage all records. (#4437) - Fix partial replace for the ListSerializer. (#4222)
- Render JSONField receive watch over precisely in browsable API. (#4999, #5042)
- Elevate validation errors for invalid datetime in given timezone. (#4987)
- Enhance proscribing doc & schema shortcuts to a subset of urls. (#4979)
- Resolve SchemaGenerator error with paginators that haven’t got any
page_size
attribute. (#5086, #3692) - Resolve HyperlinkedRelatedField exception on string with %20 in location of assign. (#4748, #5078)
- Customizable schema generator classes. (#5082)
- Update existing differ headers in response in location of overwriting them. (#5047)
- Enhance passing
.as_view()
to glimpse instance. (#5053) - Exercise staunch exception handler when settings overridden on a glimpse. (#5055, #5054)
- Update Boolean area to reinforce ‘yes’ and ‘no’ values. (#5038)
- Fix distinctive validator for ChoiceField. (#5004, #5026, #5028)
- JavaScript cleanups in API Docs. (#5001)
- Embody URL path regexs in API schemas the assign right. (#5014)
- Because it shall be plot plot in coreapi TokenAuthentication. (#5000, #4994)
- HEAD requests on ViewSets ought to never return 405. (#4705, #4973, #4864)
- Enhance utilization of ‘source’ in
extra_kwargs
. (#4688) - Fix invalid declare material kind for schema.js (#4968)
- Fix DjangoFilterBackend inheritance issues. (#5089, #5117)
3.6.2
Date: 10th March 2017
- Enhance for Safari & IE in API docs. (#4959, #4961)
- Add missing
mark_safe
in API docs template tags. (#4952, #4953) - Add missing glyphicon fonts. (#4950, #4951)
- Fix One-to-one fields in API docs. (#4955, #4956)
- Take a look at dapper ups. (#4949)
3.6.1
Date: ninth March 2017
- Make certain that
markdown
dependency is non-compulsory. (#4947)
3.6.0
Date: ninth March 2017
Peep the liberate announcement.
3.5.x sequence
3.5.4
Date: 10th February 2017
- Add max_length and min_length arguments for ListField. (#4877)
- Add per-glimpse personalized exception handler reinforce. (#4753)
- Enhance disabling of declared fields on serializer subclasses. (#4764)
- Enhance personalized glimpse names on
@list_route
and@detail_route
endpoints. (#4821) - Appropriate labels for fields in login template when personalized user model is old. (#4841)
- Whitespace fixes for descriptions generated from docstrings. (#4759, #4869, #4870)
- Higher error reporting when schemas are returned by views with out a schema renderer. (#4790)
- Fix for returned response of
PUT
requests whenprefetch_related
is old. (#4661, #4668) - Fix for breadcrumb glimpse names. (#4750)
- Fix for RequestsClient guaranteeing completely qualified URLs. (#4678)
- Fix for unsuitable behavior of writable-nested fields register some cases. (#4634, #4669)
- Resolve Django deprecation warnings. (#4712)
- Rather heaps of cleanup of check cases.
3.5.3
Date: Seventh November 2016
- Accomplish no longer elevate unsuitable FilterSet deprecation warnings. (#4660, #4643, #4644)
- Schema generation ought to never elevate 404 when a glimpse permission class does. (#4645, #4646)
- Add
autofocus
reinforce for enter controls. (#4650)
3.5.2
Date: 1st November 2016
- Restore exception tracebacks in Python 2.7. (#4631, #4638)
- Neatly cloak dicts in the admin console. (#4532, #4636)
- Fix is_simple_callable with variable args, kwargs. (#4622, #4602)
- Enhance ‘on’/’off’ literals with BooleanField. (#4640, #4624)
- Enable cursor pagination of price querysets. (#4569)
- Fix reinforce of get_full_details() for Throttled exceptions. (#4627)
- Fix FilterSet proxy. (#4620)
- Make serializer fields import train. (#4628)
- Fall redundant requests adapter. (#4639)
3.5.1
Date: 21st October 2016
- Make
rest_framework/compat.py
imports. (#4612, #4608, #4601) - Fix bug in schema unsafe path generation. (#4611, #4605)
- Fix broken case of ListSerializer with single merchandise. (#4609, #4606)
- Put off bare
raise
for Python 3.5 compat. (#4600)
3.5.0
Date: 20th October 2016
3.4.x sequence
3.4.7
Date: 21st September 2016
- Fallback behavior for request parsing when request.POST already accessed. (#3951, #4500)
- Fix regression of
RegexField
. (#4489, #4490, #2617) - Missing comma in
admin.html
inflicting CSRF error. (#4472, #4473) - Fix response rendering with empty context. (#4495)
- Fix indentation regression in API listing. (#4493)
- Fixed a distress the assign the unsuitable price is plot to
ResolverMatch.func_name
of api_view decorated glimpse. (#4465, #4462) - Fix
APIClient.get()
when path incorporates unicode arguments (#4458)
3.4.6
Date: 23rd August 2016
- Fix malformed Javascript in browsable API. (#4435)
- Skip HiddenField from Schema fields. (#4425, #4429)
- Make stronger Accomplish to illustrate the distinctive exception traceback. (#3508)
- Fix
AdminRenderer
cloak of PK only connected fields. (#4419, #4423)
3.4.5
Date: 19th August 2016
- Make stronger debug error coping with. (#4416, #4409)
- Enable personalized CSRF_HEADER_NAME setting. (#4415, #4410)
- Embody .action attribute on viewsets when producing schemas. (#4408, #4398)
- Invent no longer consist of request.FILES objects in request.POST. (#4407)
- Fix rendering of checkbox just a few. (#4403)
- Fix docstring of Self-discipline.get_default. (#4404)
- Substitute utf8 character with its ascii counterpart in README. (#4412)
3.4.4
Date: 12th August 2016
- Make certain that views are completely initialized when producing schemas. (#4373, #4382, #4383, #4279, #4278)
- Add manufacture area descriptions to schemas. (#4387)
- Fix class generation for schema endpoints. (#4391, #4394, #4390, #4386, #4376, #4329)
- Accomplish no longer strip empty quiz params when paginating. (#4392, #4393, #4260)
- Invent no longer re-speed quiz for empty results with LimitOffsetPagination. (#4201, #4388)
- Stricter kind validation for CharField. (#4380, #3394)
- RelatedField.picks ought to defend non-string values. (#4111, #4379, #3365)
- Take a look at case for rendering checkboxes in vertical manufacture vogue. (#4378, #3868, #3868)
- Show error traceback HTML in browsable API (#4042, #4172)
- Fix coping with of ALLOWED_VERSIONS and no DEFAULT_VERSION. #4370
- Enable
max_digits=None
on DecimalField. (#4377, #4372) - Limit queryset when rendering relational picks. (#4375, #4122, #3329, #3330, #3877)
- Resolve manufacture cloak with ChoiceField, MultipleChoiceField and non-string picks. (#4374, #4119, #4121, #4137, #4120)
- Fix call to TemplateHTMLRenderer.resolve_context() fallback plot. (#4371)
3.4.3
Date: 5th August 2016
- Embody fallback for customers of older TemplateHTMLRenderer internal API. (#4361)
3.4.2
Date: 5th August 2016
- Embody kwargs passed to ‘as_view’ when producing schemas. (#4359, #4330, #4331)
- Access
request.user.is_authenticated
as property no longer plot, below Django 1.10+ (#4358, #4354) - Filter HEAD out from schemas. (#4357)
- extra_kwargs takes precedence over uniqueness kwargs. (#4198, #4199, #4349)
- Appropriate descriptions when tabs are old in code indentation. (#4345, #4347)*
- Swap template context generation in TemplateHTMLRenderer. (#4236)
- Serializer defaults ought to no longer be included in partial updates. (#4346, #3565)
- Constant behavior & descriptive error from FileUploadParser when filename no longer included. (#4340, #3610, #4292, #4296)
- DecimalField quantizes incoming digitals. (#4339, #4318)
- Address non-string enter for IP fields. (#4335, #4336, #4338)
- Fix main prick coping with when Schema generation positive aspects a root URL. (#4332)
- Take a look at cases for DictField with allow_null alternatives. (#4348)
- Update tests from Django 1.10 beta to Django 1.10. (#4344)
3.4.1
Date: twenty eighth July 2016
- Added
root_renderers
argument toDefaultRouter
. (#4323, #4268) - Added
url
andschema_url
arguments. (#4321, #4308, #4305) - Queer together checks ought to practice to be taught-only fields which receive a default. (#4316, #4294)
- Set aside of abode glimpse.format_kwarg in schema generator. (#4293, #4315)
- Fix schema generator for views with
pagination_class=None
. (#4314, #4289) - Fix schema generator for views with no
get_serializer_class
. (#4265, #4285) - Fixes for media kind parameters in
Accept
andContent-Type
headers. (#4287, #4313, #4281) - Exercise verbose_name in location of object_name in error messages. (#4299)
- Minor version replace to Twitter Bootstrap. (#4307)
- SearchFilter raises error when using with connected area. (#4302, #4303, #4298)
- Alongside side reinforce for RFC 4918 assign of residing codes. (#4291)
- Add LICENSE.md to the constructed wheel. (#4270)
- Serializing “complicated” area returns None in location of the price since 3.4 (#4272, #4273, #4288)
3.4.0
Date: 14th July 2016
- Accomplish no longer strip microseconds in JSON output. (#4256)
- Two a puny bit varied iso 8601 datetime serialization. (#4255)
- Resolve unsuitable inclusion of media kind parameters. (#4254)
- Response Command-Form doubtlessly malformed. (#4253)
- Fix setup.py error on some platforms. (#4246)
- Stream alternate codecs in coreapi into separate capabilities. (#4244)
- Add localize keyword argument to
DecimalField
. (#4233) - Fix issues with routers for personalized list-route and ingredient-routes. (#4229)
- Namespace versioning with nested namespaces. (#4219)
- Sturdy uniqueness checks. (#4217)
- Minor refactoring of
must_call_distinct
. (#4215) - Overridable offset cutoff in CursorPagination. (#4212)
- Stream via strings as-in with date/time fields. (#4196)
- Add check confirming that required=Misleading is right on a relational area. (#4195)
- In LimitOffsetPagination
limit=0
ought to revert to default restrict. (#4194) - Exclude read_only=Honest fields from unique_together validation & add docs. (#4192)
- Address bytestrings in JSON. (#4191)
- JSONField(binary=Honest) represents using binary strings, which JSONRenderer doesn’t reinforce. (#4187)
- JSONField(binary=Honest) represents using binary strings, which JSONRenderer doesn’t reinforce. (#4185)
- More sturdy manufacture rendering in the browsable API. (#4181)
- Empty cases of
.validated_data
and.errors
as lists no longer dicts for ListSerializer. (#4180) - Schemas & consumer libraries. (#4179)
- Eradicated
AUTH_USER_MODEL
compat property. (#4176) - Orderly up existing deprecation warnings. (#4166)
- Django 1.10 reinforce. (#4158)
- As a lot as this level jQuery version to 1.12.4. (#4157)
- More sturdy default behavior on OrderingFilter. (#4156)
- description.py codes and tests elimination. (#4153)
- Wrap guardian.VERSION in tuple. (#4149)
- Refine validator for fields with
- Fix None values illustration in youngsters of ListField, DictField. (#4118)
- Resolve TimeField illustration for middle of the night price. (#4107)
- Set aside of abode precise assign of residing code in AdminRenderer for the redirection after POST/DELETE requests. (#4106)
- TimeField render returns None in location of 00:00:00. (#4105)
- Fix incorrectly named zh-hans and zh-hant locale path. (#4103)
- Forestall raising exception when restrict is 0. (#4098)
- TokenAuthentication: Enable personalized keyword in the header. (#4097)
- Address incorrectly padded HTTP frequent auth header. (#4090)
- LimitOffset pagination crashes Browsable API when restrict=0. (#4079)
- Fixed DecimalField arbitrary precision reinforce. (#4075)
- Added reinforce for personalized CSRF cookie names. (#4049)
- Fix regression launched by #4035. (#4041)
- No auth glimpse failing permission ought to elevate 403. (#4040)
- Fix string_types / text_types confusion. (#4025)
- Invent no longer list connected area picks in OPTIONS requests. (#4021)
- Fix typo. (#4008)
- Reorder initializing the glimpse. (#4006)
- Form error in DjangoObjectPermissionsFilter on Python 3.4. (#4005)
- Fixed use of deprecated Inquire.aggregates. (#4003)
- Fix smooth strains round docstrings. (#4002)
- Fixed admin pagination when restrict is 0. (#3990)
- OrderingFilter adjustments. (#3983)
- Non-required serializer connected fields. (#3976)
- The utilization of safer calling plot of “@api_view” in tutorial. (#3971)
- ListSerializer doesn’t address unique_together constraints. (#3970)
- Add missing migration file. (#3968)
OrderingFilter
ought to callget_serializer_class()
to resolve default fields. (#3964)- Put off old Django checks from tests and compat. (#3953)
- Enhance callable as the price of
initial
for anyserializer.Field
. (#3943) - Shunned pointless clear() call in SearchFilter. (#3938)
- Fix None UUID ForeignKey serialization. (#3936)
- Fall EOL Django 1.7. (#3933)
- Add missing assign in serializer error message. (#3926)
- Fixed _force_text_recursive typo. (#3908)
- Try to handle Django 2.0 deprecate warnings connected to
field.rel
. (#3906) - Fix parsing multipart files using a nested serializer with list. (#3820)
- Resolving APIs URL to varied namespaces. (#3816)
- Invent no longer HTML-flee
help_text
in Browsable API kinds. (#3812) - OPTIONS fetches and reveals all that you simply are going to bear in mind of international keys in picks area. (#3751)
- Django 1.9 deprecation warnings (#3729)
- Take a look at case for #3598 (#3710)
- Alongside side reinforce for just a few values for search filter. (#3541)
- Exercise get_serializer_class in ordering filter. (#3487)
- Serializers with many=Honest ought to return empty list in favor to empty dict. (#3476)
- LimitOffsetPagination restrict=0 repair. (#3444)
- Enable Validators to defer string evaluate and address recent string layout. (#3438)
- Queer validator is done and breaks if area is invalid. (#3381)
- Invent no longer ignore overridden Behold.get_view_name() in breadcrumbs. (#3273)
- Retry manufacture rendering when rendering with serializer fails. (#3164)
- Queer constraint prevents nested serializers from updating. (#2996)
- Specialty validators ought to no longer be speed for excluded (read_only) fields. (#2848)
- UniqueValidator raises exception for nested objects. (#2403)
lookup_type
is deprecated in resolve on oflookup_expr
. (#4259)
3.3.x sequence
3.3.3
Date: 14th March 2016.
- Put off version string from templates. Because of the of @blag for the parable and fixes. (#3878, #3913, #3912)
- Fixes vertical html layout for
BooleanField
. Because of the of Mikalai Radchuk for the repair. (#3910) - Silenced deprecation warnings on Django 1.8. Because of the of Simon Charette for the repair. (#3903)
- Internationalization for authtoken. Because of the of Michael Nacharov for the repair. (#3887, #3968)
- Fix
Token
model asabstract
when the authtoken utility is no longer declared. Because of the of Adam Thomas for the parable. (#3860, #3858) - Make stronger Markdown version compatibility. Because of the of Michael J. Schultz for the repair. (#3604, #3842)
QueryParameterVersioning
doesn’t useDEFAULT_VERSION
setting. Because of the of Brad Sir Bernard Law for the repair. (#3833)- Add an train
on_delete
on the devices. Because of the of Mads Jensen for the repair. (#3832) - Fix
DateField.to_representation
to work with Python 2 unicode. Because of the of Mikalai Radchuk for the repair. (#3819) - Fixed
TimeField
no longer coping with string times. Because of the of Areski Belaid for the repair. (#3809) - Steer clear of updates of
Meta.extra_kwargs
. Because of the of Kevin Massey for the parable and repair. (#3805, #3804) - Fix nested validation error being rendered incorrectly. Because of the of Craig de Stigter for the repair. (#3801)
- Doc be taught the technique to raise away from CSRF and missing button issues with
django-crispy-forms
. Because of the of Emmanuelle Delescolle, José Padilla and Luis San Pablo for the parable, prognosis and repair. (#3787, #3636, #3637) - Make stronger Leisure Framework Settings file setup time. Because of the of Miles Hutson for the parable and Mads Jensen for the repair. (#3786, #3815)
- Make stronger authtoken compatibility with Django 1.9. Because of the of S. Andrew Sheppard for the repair. (#3785)
- Fix
Min/MaxValueValidator
transfer from a model’sDecimalField
. Because of the of Kevin Brown for the repair. (#3774) - Make stronger HTML title in the Browsable API. Because of the of Mike Lissner for the parable and repair. (#3769)
- Fix
AutoFilterSet
to inherit fromdefault_filter_set
. Because of the of Tom Linford for the repair. (#3753) - Fix transifex config to address the recent Chinese language codes. Because of the of @nypisces for the parable and repair. (#3739)
DateTimeField
doesn’t address empty values precisely. Because of the of Mick Parker for the parable and repair. (#3731, #3726)- Elevate error when setting a removed rest_framework setting. Because of the of Luis San Pablo for the repair. (#3715)
- Add missing csrf_token in AdminRenderer put up manufacture. Because of the of Piotr Śniegowski for the repair. (#3703)
- Refactored
_get_reverse_relationships()
to use staunchto_field
. Because of the of Benjamin Phillips for the repair. (#3696) - Doc using
get_queryset
forRelatedField
. Because of the of Ryan Hiebert for the repair. (#3605) - Fix empty pk detection in HyperlinkRelatedField.get_url. Because of the of @jslang for the repair (#3962)
3.3.2
Date: 14th December 2015.
ListField
enforces enter is a list. (#3513)- Fix regression hiding uncooked files manufacture. (#3600, #3578)
- Fix Python 3.5 compatibility. (#3534, #3626)
- Enable setting a personalized Django Paginator in
pagination.PageNumberPagination
. (#3631, #3684) - Fix relational fields without
to_fields
attribute. (#3635, #3634) - Fix
template.render
deprecation warnings for Django 1.9. (#3654) - Form response headers in browsable API renderer. (#3655)
- Exercise related_objects api for Django 1.9+. (#3656, #3252)
- Add verify modal when deleting. (#3228, #3662)
- Command beforehand hidden AttributeErrors and TypeErrors while calling has_[object_]permissions. (#3668)
- Make DRF acceptable with multi template engine in Django 1.8. (#3672)
- Update
NestedBoundField
to also address empty string when rendering its manufacture. (#3677) - Fix UUID validation to effectively score invalid enter kinds. (#3687, #3679)
- Fix caching issues. (#3628, #3701)
- Fix Admin and API browser for views with out a filter_class. (#3705, #3596, #3597)
- Add app_name to rest_framework.urls. (#3714)
- Make stronger authtoken’s views to reinforce url versioning. (#3718, #3723)
3.3.1
Date: 4th November 2015.
- Resolve parsing bug when gaining access to
request.POST
(#3592) - Because it shall be address
to_field
relating to fundamental key. (#3593) - Enable filter HTML to render when no
filter_class
is outlined. (#3560) - Fix admin rendering issues. (#3564, #3556)
- Fix distress with DecimalValidator. (#3568)
3.3.0
Date: twenty eighth October 2015.
- HTML controls for filters. (#3315)
- Kinds API. (#3475)
- AJAX browsable API. (#3410)
- Added JSONField. (#3454)
- Because it shall be method
to_field
when organisingModelSerializer
relational fields. (#3526) - Embody keyword arguments when mapping
FilePathField
to a serializer area. (#3536) - Plan acceptable model
error_messages
onModelSerializer
uniqueness constraints. (#3435) - Embody
max_length
constraint forModelSerializer
fields mapped from TextField. (#3509) - Added reinforce for Django 1.9. (#3450, #3525)
- Eradicated reinforce for Django 1.5 & 1.6. (#3421, #3429)
- Eradicated ‘south’ migrations. (#3495)
3.2.x sequence
3.2.5
Date: twenty seventh October 2015.
- Escape
username
in non-compulsory logout mark. (#3550)
3.2.4
Date: 21th September 2015.
- Accomplish no longer error on missing
ViewSet.search_fields
attribute. (#3324, #3323) - Fix
allow_empty
no longer engaged on serializers withmany=True
. (#3361, #3364) - Let
DurationField
accepts integers. (#3359) - Multi-stage dictionaries no longer supported in multipart requests. (#3314)
- Fix
ListField
truncation on HTTP PATCH (#3415, #2761)
3.2.3
Date: twenty fourth August 2015.
- Added
html_cutoff
andhtml_cutoff_text
for limiting pick out dropdowns. (#3313) - Added regex vogue to
SearchFilter
. (#3316) - Resolve issues with setting smooth HTML fields. (#3318) (#3321)
- Because it shall be cloak existing ‘pick out just a few’ values in browsable API kinds. (#3290)
- Resolve duplicated validation message for
IPAddressField
. ([#3249gh3249)(#3250) - Fix to make certain admin renderer continues to work when pagination is disabled. (#3275)
- Resolve error with
LimitOffsetPagination
when count=0, offset=0. (#3303)
3.2.2
Date: Thirteenth August 2015.
- Add
display_value()
plot to be used when exhibiting relational area pick out inputs. (#3254) - Fix distress with
BooleanField
checkboxes incorrectly exhibiting as checked. (#3258) - Make certain that empty checkboxes effectively plot
BooleanField
toFalse
in all cases. (#2776) - Enable
WSGIRequest.FILES
property without raising unsuitable deprecated error. (#3261) - Resolve distress with rendering nested serializers in kinds. (#3260)
- Elevate an error if user by accident whisk a serializer instance to a response, in favor to files. (#3241)
3.2.1
Date: Seventh August 2015.
- Fix for relational pick out widgets rendering without any picks. (#3237)
- Fix for
1
,0
rendering astrue
,false
in the admin interface. #3227) - Fix for ListFields with single price in HTML manufacture enter. (#3238)
- Enable
request.FILES
for compat with Django’sHTTPRequest
class. (#3239)
3.2.0
Date: sixth August 2015.
- Add
AdminRenderer
. (#2926) - Add
FilePathField
. (#1854) - Add
allow_empty
toListField
. (#2250) - Enhance django-guardian 1.3. (#3165)
- Enhance grouped picks. (#3225)
- Enhance error kinds in browsable API. (#3024)
- Enable permission classes to customize the error message. (#2539)
- Enhance
source=
on hyperlinked fields. (#2690) ListField(allow_null=True)
now permits null as the list price, no longer null objects in the list. (#2766)ManyToMany()
maps toallow_empty=False
,ManyToMany(blank=True)
maps toallow_empty=True
. (#2804)- Enhance personalized serialization styles for fundamental key fields. (#2789)
OPTIONS
requests reinforce nested representations. (#2915)- Set aside of abode
view.action=="metadata"
for viewsets withOPTIONS
requests. (#3115) - Enhance
allow_blank
onUUIDField
. ([#3130][gh#3130]) - Invent no longer cloak glimpse docstrings with 401 or 403 response codes. (#3216)
- Resolve Django 1.8 deprecation warnings. (#2886)
- Fix for
DecimalField
validation. (#3139) - Fix behavior of
allow_blank=False
when old withtrim_whitespace=True
. (#2712) - Fix distress with some area combinations incorrectly mapping to an invalid
allow_blank
argument. (#3011) - Fix for output representations with prefetches and modified querysets. (#2704, #2727)
- Fix assertion error when CursorPagination is supplied with sure invalid quiz parameters. (#2920)gh2920.
- Fix
UnicodeDecodeError
when invalid characters included in header withTokenAuthentication
. (#2928) - Fix transaction rollbacks with
@non_atomic_requests
decorator. (#3016) - Fix reproduction results distress with Oracle databases using
SearchFilter
. (#2935) - Fix checkbox alignment and rendering in browsable API kinds. (#2783)
- Fix for unsaved file objects which ought to use
"url": null
in the illustration. (#2759) - Fix area price rendering in browsable API. (#2416)
- Fix
HStoreField
to incorporateallow_blank=True
inDictField
mapping. (#2659) - Rather heaps of different cleanups, improvements to error messaging, non-public API & minor fixes.
3.1.x sequence
3.1.3
Date: 4th June 2015.
- Add
DurationField
. (#2481, #2989) - Add
format
argument toUUIDField
. (#2788, #3000) MultipleChoiceField
empties incorrectly on a partial replace using multipart/manufacture-files (#2993, #2894)- Fix a bug in alternatives connected to be taught-only
RelatedField
. (#2981, #2811) - Fix nested serializers with
unique_together
family. (#2975) - Enable surprising values for
ChoiceField
/MultipleChoiceField
representations. (#2839, #2940) - Rollback the transaction on error if
ATOMIC_REQUESTS
is plot. (#2887, #2034) - Set aside of abode the action on a glimpse when override_method no subject its None-ness. (#2933)
DecimalField
accepts2E+2
as 200 and validates decimal location precisely. (#2948, #2947)- Enhance frequent authentication with personalized
UserModel
that adjustusername
. (#2952) IPAddressField
improvements. (#2747, #2618, #3008)- Make stronger
DecimalField
for more straightforward subclassing. (#2695)
3.1.2
Date: 13rd Can also 2015.
DateField.to_representation
can address str and empty values. (#2656, #2687, #2869)- Exercise default motive phrases from HTTP long-established. (#2764, #2763)
- Elevate error when
ModelSerializer
old with summary model. (#2757, #2630) - Address reversal of non-API view_name in
HyperLinkedRelatedField
(#2724, #2711) - Accomplish no longer require pk strictly for connected fields. (#2745, #2754)
- Metadata detects null boolean area kind. (#2762)
- Honest appropriate coping with of depth in nested serializers. (#2798)
- Show viewset without paginator. (#2807)
- Accomplish no longer check for deprecated
.model
attribute in permissions (#2818) - Prohibit integer area to integers and strings. (#2835, #2836)
- Make stronger
IntegerField
to use compiled decimal regex. (#2853) - Forestall empty
queryset
to steal AssertionError. (#2862) DjangoModelPermissions
depend onget_queryset
. (#2863)- Examine
AcceptHeaderVersioning
with declare material negotiation in location. (#2868) - Enable
DjangoObjectPermissions
to use views that account forget_queryset
. (#2905)
3.1.1
Date: 23rd March 2015.
- Safety repair: Escape tab switching cookie name in browsable API.
- Show enter kinds in browsable API if
serializer_class
is old, even whenget_serializer
plot doesn’t exist on the glimpse. (#2743) - Exercise a password enter for the AuthTokenSerializer. (#2741)
- Fix missing anchor closing mark after next button. (#2691)
- Fix
lookup_url_kwarg
coping with in viewsets. (#2685, #2591) - Fix area with importing
rest_framework.views
inapps.py
(#2678) - LimitOffsetPagination raises
TypeError
if PAGE_SIZE no longer plot (#2667, #2700) - German translation for
min_value
area error message referencesmax_value
. (#2645) - Put off
MergeDict
. (#2640) - Enhance serializing unsaved devices with connected fields. (#2637, #2641)
- Enable smooth/null on radio.html picks. (#2631)
3.1.0
Date: 5th March 2015.
For paunchy tiny print stare the three.1 liberate announcement.
3.0.x sequence
3.0.5
Date: 10th February 2015.
- Fix a bug the assign
_closable_objects
breaks pickling. (#1850, #2492) - Enable non-long-established
User
devices withThrottling
. (#2524) - Enhance personalized
User.db_table
in TokenAuthentication migration. (#2479) - Fix deceptive
AttributeError
tracebacks onRequest
objects. (#2530, #2108) ManyRelatedField.get_value
clearing area on partial replace. (#2475)- Eradicated ‘.model’ shortcut from code. (#2486)
- Fix
detail_route
andlist_route
mutable argument. (#2518) - Prefetching the user object when getting the token in
TokenAuthentication
. (#2519)
3.0.4
Date: twenty eighth January 2015.
- Django 1.8a1 reinforce. (#2425, #2446, #2441)
- Add
DictField
and reinforce Django 1.8HStoreField
. (#2451, #2106) - Add
UUIDField
and reinforce Django 1.8UUIDField
. (#2448, #2433, #2432) BaseRenderer.render
now raisesNotImplementedError
. (#2434)- Fix timedelta JSON serialization on Python 2.6. (#2430)
ResultDict
andResultList
now seem as long-established dict/list. (#2421)- Fix seen
HiddenField
in the HTML manufacture of the online browsable API online page. (#2410) - Exercise
OrderedDict
forRelatedField.choices
. (#2408) - Fix ident layout when using
HTTP_X_FORWARDED_FOR
. (#2401) - Fix invalid key with memcached while using throttling. (#2400)
- Fix
FileUploadParser
with version 3.x. (#2399) - Fix the serializer inheritance. (#2388)
- Fix caching issues with
ReturnDict
. (#2360)
3.0.3
Date: Eighth January 2015.
- Fix
MinValueValidator
onmodels.DateField
. (#2369) - Fix serializer missing context when pagination is old. (#2355)
- Namespaced router URLs are now supported by the
DefaultRouter
. (#2351) required=False
permits omission of price for output. (#2342)- Exercise textarea enter for
models.TextField
. (#2340) - Exercise personalized
ListSerializer
for pagination if required. (#2331, #2327) - Higher behavior with null and ” for smooth HTML fields. (#2330)
- Make certain that fields in
exclude
are model fields. (#2319) - Fix
IntegerField
andmax_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’si18n_patterns
. (#2278) - Skill to customize router URLs for personalized actions, using
url_path
. (#2010) - Accomplish no longer install Django REST Framework as egg. (#2386)
3.0.2
Date: 17th December 2014.
- Make certain that
request.user
is made readily accessible to response middleware. (#2155) Client.logout()
also cancels any existingforce_authenticate
. (#2218, #2259)- Additional assertions and greater checks to combating unsuitable serializer API use. (#2228, #2234, #2262, #2263, #2266, #2267, #2289, #2291)
- Fixed
min_length
message forCharField
. (#2255) - Fix
UnicodeDecodeError
, which is ready to happen on serializerrepr
. (#2270, #2279) - Fix empty HTML values when a default is supplied. (#2280, #2294)
- Fix
SlugRelatedField
raisingUnicodeEncodeError
when old as a just a few need enter. (#2290)
3.0.1
Date: 11th December 2014.
- More priceless error message when the default Serializer
create()
fails. (#2013) - Elevate error when making an are attempting to put serializer if files is no longer right. (#2098)
- Fix
FileUploadParser
breaks with empty file names and a pair of add handlers. (#2109) - Make stronger
BindingDict
to reinforce long-established dict-capabilities. (#2135, #2163) - Add
validate()
toListSerializer
. (#2168, #2225, #2232) - Fix JSONP renderer failing to flee some characters. (#2169, #2195)
- Add missing default vogue for
FileField
. (#2172) - Actions are required when calling
ViewSet.as_view()
. (#2175) - Add
allow_blank
toChoiceField
. (#2184, #2239) - Beauty fixes in the HTML renderer. (#2187)
- Elevate error if
fields
on serializer is no longer a list of strings. (#2193, #2213) - Make stronger checks for nested creates and updates. (#2194, #2196)
validated_attrs
argument renamed tovalidated_data
inSerializer
create()
/update()
. (#2197)- Put off deprecated code to copy the dropped Django variations. (#2200)
- Higher serializer errors for nested writes. (#2202, #2215)
- Fix pagination and personalized permissions incompatibility. (#2205)
- Elevate error if
fields
on serializer is no longer a list of strings. (#2213) - Add missing translation markers for relational fields. (#2231)
- Make stronger area lookup behavior for dicts/mappings. (#2244, #2243)
- Optimized hyperlinked PK. (#2242)
3.0.0
Date: 1st December 2014
For paunchy tiny print stare the three.0 liberate announcement.
For older liberate notes, please stare the version 2.x documentation.