djangorestframework is not pinned to a specific version.
3.5.1
Date:21st October 2016
- Make
rest_framework/compat.py imports. ([4612][gh4612], [4608][gh4608], [4601][gh4601]) - Fix bug in schema base path generation. ([4611][gh4611], [4605][gh4605])
- Fix broken case of ListSerializer with single item. ([4609][gh4609], [4606][gh4606])
- Remove bare
raise for Python 3.5 compat. ([4600][gh4600])
3.5.0
3.4.x series
3.4.7
Date:21st September 2016
- Fallback behavior for request parsing when request.POST already accessed. ([3951][gh3951], [4500][gh4500])
- Fix regression of
RegexField. ([4489][gh4489], [4490][gh4490], [2617][gh2617]) - Missing comma in
admin.html causing CSRF error. ([4472][gh4472], [4473][gh4473]) - Fix response rendering with empty context. ([4495][gh4495])
- Fix indentation regression in API listing. ([4493][gh4493])
- Fixed an issue where the incorrect value is set to
ResolverMatch.func_name of api_view decorated view. ([4465][gh4465], [4462][gh4462]) - Fix
APIClient.get() when path contains unicode arguments ([4458][gh4458])
3.4.6
Date:23rd August 2016
- Fix malformed Javascript in browsable API. ([4435][gh4435])
- Skip HiddenField from Schema fields. ([4425][gh4425], [4429][gh4429])
- Improve Create to show the original exception traceback. ([3508][gh3508])
- Fix
AdminRenderer display of PK only related fields. ([4419][gh4419], [4423][gh4423])
3.4.5
Date:19th August 2016
- Improve debug error handling. ([4416][gh4416], [4409][gh4409])
- Allow custom CSRF_HEADER_NAME setting. ([4415][gh4415], [4410][gh4410])
- Include .action attribute on viewsets when generating schemas. ([4408][gh4408], [4398][gh4398])
- Do not include request.FILES items in request.POST. ([4407][gh4407])
- Fix rendering of checkbox multiple. ([4403][gh4403])
- Fix docstring of Field.get_default. ([4404][gh4404])
- Replace utf8 character with its ascii counterpart in README. ([4412][gh4412])
3.4.4
Date:12th August 2016
- Ensure views are fully initialized when generating schemas. ([4373][gh4373], [4382][gh4382], [4383][gh4383], [4279][gh4279], [4278][gh4278])
- Add form field descriptions to schemas. ([4387][gh4387])
- Fix category generation for schema endpoints. ([4391][gh4391], [4394][gh4394], [4390][gh4390], [4386][gh4386], [4376][gh4376], [4329][gh4329])
- Don't strip empty query params when paginating. ([4392][gh4392], [4393][gh4393], [4260][gh4260])
- Do not re-run query for empty results with LimitOffsetPagination. ([4201][gh4201], [4388][gh4388])
- Stricter type validation for CharField. ([4380][gh4380], [3394][gh3394])
- RelatedField.choices should preserve non-string values. ([4111][gh4111], [4379][gh4379], [3365][gh3365])
- Test case for rendering checkboxes in vertical form style. ([4378][gh4378], [3868][gh3868], [3868][gh3868])
- Show error traceback HTML in browsable API ([4042][gh4042], [4172][gh4172])
- Fix handling of ALLOWED_VERSIONS and no DEFAULT_VERSION. [4370][gh4370]
- Allow
max_digits=None on DecimalField. ([4377][gh4377], [4372][gh4372]) - Limit queryset when rendering relational choices. ([4375][gh4375], [4122][gh4122], [3329][gh3329], [3330][gh3330], [3877][gh3877])
- Resolve form display with ChoiceField, MultipleChoiceField and non-string choices. ([4374][gh4374], [4119][gh4119], [4121][gh4121], [4137][gh4137], [4120][gh4120])
- Fix call to TemplateHTMLRenderer.resolve_context() fallback method. ([4371][gh4371])
3.4.3
Date:5th August 2016
- Include fallaback for users of older TemplateHTMLRenderer internal API. ([4361][gh4361])
3.4.2
Date:5th August 2016
- Include kwargs passed to 'as_view' when generating schemas. ([4359][gh4359], [4330][gh4330], [4331][gh4331])
- Access
request.user.is_authenticated as property not method, under Django 1.10+ ([4358][gh4358], [4354][gh4354]) - Filter HEAD out from schemas. ([4357][gh4357])
- extra_kwargs takes precedence over uniqueness kwargs. ([4198][gh4198], [4199][gh4199], [4349][gh4349])
- Correct descriptions when tabs are used in code indentation. ([4345][gh4345], [4347][gh4347])*
- Change template context generation in TemplateHTMLRenderer. ([4236][gh4236])
- Serializer defaults should not be included in partial updates. ([4346][gh4346], [3565][gh3565])
- Consistent behavior & descriptive error from FileUploadParser when filename not included. ([4340][gh4340], [3610][gh3610], [4292][gh4292], [4296][gh4296])
- DecimalField quantizes incoming digitals. ([4339][gh4339], [4318][gh4318])
- Handle non-string input for IP fields. ([4335][gh4335], [4336][gh4336], [4338][gh4338])
- Fix leading slash handling when Schema generation includes a root URL. ([4332][gh4332])
- Test cases for DictField with allow_null options. ([4348][gh4348])
- Update tests from Django 1.10 beta to Django 1.10. ([4344][gh4344])
3.4.1
Date:28th July 2016
- Added
root_renderers argument toDefaultRouter. ([4323][gh4323], [4268][gh4268]) - Added
url andschema_url arguments. ([4321][gh4321], [4308][gh4308], [4305][gh4305]) - Unique together checks should apply to read-only fields which have a default. ([4316][gh4316], [4294][gh4294])
- Set view.format_kwarg in schema generator. ([4293][gh4293], [4315][gh4315])
- Fix schema generator for views with
pagination_class = None. ([4314][gh4314], [4289][gh4289]) - Fix schema generator for views with no
get_serializer_class. ([4265][gh4265], [4285][gh4285]) - Fixes for media type parameters in
Accept andContent-Type headers. ([4287][gh4287], [4313][gh4313], [4281][gh4281]) - Use verbose_name instead of object_name in error messages. ([4299][gh4299])
- Minor version update to Twitter Bootstrap. ([4307][gh4307])
- SearchFilter raises error when using with related field. ([4302][gh4302], [4303][gh4303], [4298][gh4298])
- Adding support for RFC 4918 status codes. ([4291][gh4291])
- Add LICENSE.md to the built wheel. ([4270][gh4270])
- Serializing "complex" field returns None instead of the value since 3.4 ([4272][gh4272], [4273][gh4273], [4288][gh4288])
3.4.0
Date:14th July 2016
- Don't strip microseconds in JSON output. ([4256][gh4256])
- Two slightly different iso 8601 datetime serialization. ([4255][gh4255])
- Resolve incorrect inclusion of media type parameters. ([4254][gh4254])
- Response Content-Type potentially malformed. ([4253][gh4253])
- Fix setup.py error on some platforms. ([4246][gh4246])
- Move alternate formats in coreapi into separate packages. ([4244][gh4244])
- Add localize keyword argument to
DecimalField. ([4233][gh4233]) - Fix issues with routers for custom list-route and detail-routes. ([4229][gh4229])
- Namespace versioning with nested namespaces. ([4219][gh4219])
- Robust uniqueness checks. ([4217][gh4217])
- Minor refactoring of
must_call_distinct. ([4215][gh4215]) - Overridable offset cutoff in CursorPagination. ([4212][gh4212])
- Pass through strings as-in with date/time fields. ([4196][gh4196])
- Add test confirming that required=False is valid on a relational field. ([4195][gh4195])
- In LimitOffsetPagination
limit=0 should revert to default limit. ([4194][gh4194]) - Exclude read_only=True fields from unique_together validation & add docs. ([4192][gh4192])
- Handle bytestrings in JSON. ([4191][gh4191])
- JSONField(binary=True) represents using binary strings, which JSONRenderer does not support. ([4187][gh4187])
- JSONField(binary=True) represents using binary strings, which JSONRenderer does not support. ([4185][gh4185])
- More robust form rendering in the browsable API. ([4181][gh4181])
- Empty cases of
.validated_data and.errors as lists not dicts for ListSerializer. ([4180][gh4180]) - Schemas & client libraries. ([4179][gh4179])
- Removed
AUTH_USER_MODEL compat property. ([4176][gh4176]) - Clean up existing deprecation warnings. ([4166][gh4166])
- Django 1.10 support. ([4158][gh4158])
- Updated jQuery version to 1.12.4. ([4157][gh4157])
- More robust default behavior on OrderingFilter. ([4156][gh4156])
- description.py codes and tests removal. ([4153][gh4153])
- Wrap guardian.VERSION in tuple. ([4149][gh4149])
- Refine validator for fields with <source=> kwargs. ([4146][gh4146])
- Fix None values representation in childs of ListField, DictField. ([4118][gh4118])
- Resolve TimeField representation for midnight value. ([4107][gh4107])
- Set proper status code in AdminRenderer for the redirection after POST/DELETE requests. ([4106][gh4106])
- TimeField render returns None instead of 00:00:00. ([4105][gh4105])
- Fix incorrectly named zh-hans and zh-hant locale path. ([4103][gh4103])
- Prevent raising exception when limit is 0. ([4098][gh4098])
- TokenAuthentication: Allow custom keyword in the header. ([4097][gh4097])
- Handle incorrectly padded HTTP basic auth header. ([4090][gh4090])
- LimitOffset pagination crashes Browseable API when limit=0. ([4079][gh4079])
- Fixed DecimalField arbitrary precision support. ([4075][gh4075])
- Added support for custom CSRF cookie names. ([4049][gh4049])
- Fix regression introduced by 4035. ([4041][gh4041])
- No auth view failing permission should raise 403. ([4040][gh4040])
- Fix string_types / text_types confusion. ([4025][gh4025])
- Do not list related field choices in OPTIONS requests. ([4021][gh4021])
- Fix typo. ([4008][gh4008])
- Reorder initializing the view. ([4006][gh4006])
- Type error in DjangoObjectPermissionsFilter on Python 3.4. ([4005][gh4005])
- Fixed use of deprecated Query.aggregates. ([4003][gh4003])
- Fix blank lines around docstrings. ([4002][gh4002])
- Fixed admin pagination when limit is 0. ([3990][gh3990])
- OrderingFilter adjustements. ([3983][gh3983])
- Non-required serializer related fields. ([3976][gh3976])
- Using safer calling way of "api_view" in tutorial. ([3971][gh3971])
- ListSerializer doesn't handle unique_together constraints. ([3970][gh3970])
- Add missing migration file. ([3968][gh3968])
OrderingFilter should callget_serializer_class() to determine default fields. ([3964][gh3964])- Remove old django checks from tests and compat. ([3953][gh3953])
- Support callable as the value of
initial for anyserializer.Field. ([3943][gh3943]) - Prevented unnecessary distinct() call in SearchFilter. ([3938][gh3938])
- Fix None UUID ForeignKey serialization. ([3936][gh3936])
- Drop EOL Django 1.7. ([3933][gh3933])
- Add missing space in serializer error message. ([3926][gh3926])
- Fixed _force_text_recursive typo. ([3908][gh3908])
- Attempt to address Django 2.0 deprecate warnings related to
field.rel. ([3906][gh3906]) - Fix parsing multipart data using a nested serializer with list. ([3820][gh3820])
- Resolving APIs URL to different namespaces. ([3816][gh3816])
- Do not HTML-escape
help_text in Browsable API forms. ([3812][gh3812]) - OPTIONS fetches and shows all possible foreign keys in choices field. ([3751][gh3751])
- Django 1.9 deprecation warnings ([3729][gh3729])
- Test case for 3598 ([3710][gh3710])
- Adding support for multiple values for search filter. ([3541][gh3541])
- Use get_serializer_class in ordering filter. ([3487][gh3487])
- Serializers with many=True should return empty list rather than empty dict. ([3476][gh3476])
- LimitOffsetPagination limit=0 fix. ([3444][gh3444])
- Enable Validators to defer string evaluation and handle new string format. ([3438][gh3438])
- Unique validator is executed and breaks if field is invalid. ([3381][gh3381])
- Do not ignore overridden View.get_view_name() in breadcrumbs. ([3273][gh3273])
- Retry form rendering when rendering with serializer fails. ([3164][gh3164])
- Unique constraint prevents nested serializers from updating. ([2996][gh2996])
- Uniqueness validators should not be run for excluded (read_only) fields. ([2848][gh2848])
- UniqueValidator raises exception for nested objects. ([2403][gh2403])
*lookup_type is deprecated in favor oflookup_expr. ([4259][gh4259])
3.3.x series
3.3.3
Date:14th March 2016.
- Remove version string from templates. Thanks to blag for the report and fixes. ([3878][gh3878], [3913][gh3913], [3912][gh3912])
- Fixes vertical html layout for
BooleanField. Thanks to Mikalai Radchuk for the fix. ([3910][gh3910]) - Silenced deprecation warnings on Django 1.8. Thanks to Simon Charette for the fix. ([3903][gh3903])
- Internationalization for authtoken. Thanks to Michael Nacharov for the fix. ([3887][gh3887], [3968][gh3968])
- Fix
Token model asabstract when the authtoken application isn't declared. Thanks to Adam Thomas for the report. ([3860][gh3860], [3858][gh3858]) - Improve Markdown version compatibility. Thanks to Michael J. Schultz for the fix. ([3604][gh3604], [3842][gh3842])
QueryParameterVersioning does not useDEFAULT_VERSION setting. Thanks to Brad Montgomery for the fix. ([3833][gh3833])- Add an explicit
on_delete on the models. Thanks to Mads Jensen for the fix. ([3832][gh3832]) - Fix
DateField.to_representation to work with Python 2 unicode. Thanks to Mikalai Radchuk for the fix. ([3819][gh3819]) - Fixed
TimeField not handling string times. Thanks to Areski Belaid for the fix. ([3809][gh3809]) - Avoid updates of
Meta.extra_kwargs. Thanks to Kevin Massey for the report and fix. ([3805][gh3805], [3804][gh3804]) - Fix nested validation error being rendered incorrectly. Thanks to Craig de Stigter for the fix. ([3801][gh3801])
- 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][gh3787], [3636][gh3636], [3637][gh3637]) - Improve Rest Framework Settings file setup time. Thanks to Miles Hutson for the report and Mads Jensen for the fix. ([3786][gh3786], [3815][gh3815])
- Improve authtoken compatibility with Django 1.9. Thanks to S. Andrew Sheppard for the fix. ([3785][gh3785])
- Fix
Min/MaxValueValidator transfer from a model'sDecimalField. Thanks to Kevin Brown for the fix. ([3774][gh3774]) - Improve HTML title in the Browsable API. Thanks to Mike Lissner for the report and fix. ([3769][gh3769])
- Fix
AutoFilterSet to inherit fromdefault_filter_set. Thanks to Tom Linford for the fix. ([3753][gh3753]) - Fix transifex config to handle the new Chinese language codes. Thanks to nypisces for the report and fix. ([3739][gh3739])
DateTimeField does not handle empty values correctly. Thanks to Mick Parker for the report and fix. ([3731][gh3731], [3726][gh3728])- Raise error when setting a removed rest_framework setting. Thanks to Luis San Pablo for the fix. ([3715][gh3715])
- Add missing csrf_token in AdminRenderer post form. Thanks to Piotr Śniegowski for the fix. ([3703][gh3703])
- Refactored
_get_reverse_relationships() to use correctto_field. Thanks to Benjamin Phillips for the fix. ([3696][gh3696]) - Document the use of
get_queryset forRelatedField. Thanks to Ryan Hiebert for the fix. ([3605][gh3605]) - Fix empty pk detection in HyperlinkRelatedField.get_url. Thanks to jslang for the fix ([3962][gh3962])
3.3.2
Date:14th December 2015.
ListField enforces input is a list. ([3513][gh3513])- Fix regression hiding raw data form. ([3600][gh3600], [3578][gh3578])
- Fix Python 3.5 compatibility. ([3534][gh3534], [3626][gh3626])
- Allow setting a custom Django Paginator in
pagination.PageNumberPagination. ([3631][gh3631], [3684][gh3684]) - Fix relational fields without
to_fields attribute. ([3635][gh3635], [3634][gh3634]) - Fix
template.render deprecation warnings for Django 1.9. ([3654][gh3654]) - Sort response headers in browsable API renderer. ([3655][gh3655])
- Use related_objects api for Django 1.9+. ([3656][gh3656], [3252][gh3252])
- Add confirm modal when deleting. ([3228][gh3228], [3662][gh3662])
- Reveal previously hidden AttributeErrors and TypeErrors while calling has_[object_]permissions. ([3668][gh3668])
- Make DRF compatible with multi template engine in Django 1.8. ([3672][gh3672])
- Update
NestedBoundField to also handle empty string when rendering its form. ([3677][gh3677]) - Fix UUID validation to properly catch invalid input types. ([3687][gh3687], [3679][gh3679])
- Fix caching issues. ([3628][gh3628], [3701][gh3701])
- Fix Admin and API browser for views without a filter_class. ([3705][gh3705], [3596][gh3596], [3597][gh3597])
- Add app_name to rest_framework.urls. ([3714][gh3714])
- Improve authtoken's views to support url versioning. ([3718][gh3718], [3723][gh3723])
3.3.1
Date:4th November 2015.
- Resolve parsing bug when accessing
request.POST ([3592][gh3592]) - Correctly deal with
to_field referring to primary key. ([3593][gh3593]) - Allow filter HTML to render when no
filter_class is defined. ([3560][gh3560]) - Fix admin rendering issues. ([3564][gh3564], [3556][gh3556])
- Fix issue with DecimalValidator. ([3568][gh3568])
3.3.0
Date:28th October 2015.
- HTML controls for filters. ([3315][gh3315])
- Forms API. ([3475][gh3475])
- AJAX browsable API. ([3410][gh3410])
- Added JSONField. ([3454][gh3454])
- Correctly map
to_field when creatingModelSerializer relational fields. ([3526][gh3526]) - Include keyword arguments when mapping
FilePathField to a serializer field. ([3536][gh3536]) - Map appropriate model
error_messages onModelSerializer uniqueness constraints. ([3435][gh3435]) - Include
max_length constraint forModelSerializer fields mapped from TextField. ([3509][gh3509]) - Added support for Django 1.9. ([3450][gh3450], [3525][gh3525])
- Removed support for Django 1.5 & 1.6. ([3421][gh3421], [3429][gh3429])
- Removed 'south' migrations. ([3495][gh3495])
3.2.x series
3.2.5
Date:27th October 2015.
- Escape
username in optional logout tag. ([3550][gh3550])
3.2.4
Date:21th September 2015.
- Don't error on missing
ViewSet.search_fields attribute. ([3324][gh3324], [3323][gh3323]) - Fix
allow_empty not working on serializers withmany=True. ([3361][gh3361], [3364][gh3364]) - Let
DurationField accepts integers. ([3359][gh3359]) - Multi-level dictionaries not supported in multipart requests. ([3314][gh3314])
- Fix
ListField truncation on HTTP PATCH ([3415][gh3415], [2761][gh2761])
3.2.3
Date:24th August 2015.
- Added
html_cutoff andhtml_cutoff_text for limiting select dropdowns. ([3313][gh3313]) - Added regex style to
SearchFilter. ([3316][gh3316]) - Resolve issues with setting blank HTML fields. ([3318][gh3318]) ([3321][gh3321])
- Correctly display existing 'select multiple' values in browsable API forms. ([3290][gh3290])
- Resolve duplicated validation message for
IPAddressField. ([3249[gh3249]) ([3250][gh3250]) - Fix to ensure admin renderer continues to work when pagination is disabled. ([3275][gh3275])
- Resolve error with
LimitOffsetPagination when count=0, offset=0. ([3303][gh3303])
3.2.2
Date:13th August 2015.
- Add
display_value() method for use when displaying relational field select inputs. ([3254][gh3254]) - Fix issue with
BooleanField checkboxes incorrectly displaying as checked. ([3258][gh3258]) - Ensure empty checkboxes properly set
BooleanField toFalse in all cases. ([2776][gh2776]) - Allow
WSGIRequest.FILES property without raising incorrect deprecated error. ([3261][gh3261]) - Resolve issue with rendering nested serializers in forms. ([3260][gh3260])
- Raise an error if user accidentally pass a serializer instance to a response, rather than data. ([3241][gh3241])
3.2.1
Date:7th August 2015.
- Fix for relational select widgets rendering without any choices. ([3237][gh3237])
- Fix for
1,0 rendering astrue,false in the admin interface. [3227][gh3227]) - Fix for ListFields with single value in HTML form input. ([3238][gh3238])
- Allow
request.FILES for compat with Django'sHTTPRequest class. ([3239][gh3239])
3.2.0
Date:6th August 2015.
- Add
AdminRenderer. ([2926][gh2926]) - Add
FilePathField. ([1854][gh1854]) - Add
allow_empty toListField. ([2250][gh2250]) - Support django-guardian 1.3. ([3165][gh3165])
- Support grouped choices. ([3225][gh3225])
- Support error forms in browsable API. ([3024][gh3024])
- Allow permission classes to customize the error message. ([2539][gh2539])
- Support
source=<method> on hyperlinked fields. ([2690][gh2690]) ListField(allow_null=True) now allows null as the list value, not null items in the list. ([2766][gh2766])ManyToMany() maps toallow_empty=False,ManyToMany(blank=True) maps toallow_empty=True. ([2804][gh2804])- Support custom serialization styles for primary key fields. ([2789][gh2789])
OPTIONS requests support nested representations. ([2915][gh2915])- Set
view.action == "metadata" for viewsets withOPTIONS requests. ([3115][gh3115]) - Support
allow_blank onUUIDField. ([3130][gh3130]) - Do not display view docstrings with 401 or 403 response codes. ([3216][gh3216])
- Resolve Django 1.8 deprecation warnings. ([2886][gh2886])
- Fix for
DecimalField validation. ([3139][gh3139]) - Fix behavior of
allow_blank=False when used withtrim_whitespace=True. ([2712][gh2712]) - Fix issue with some field combinations incorrectly mapping to an invalid
allow_blank argument. ([3011][gh3011]) - Fix for output representations with prefetches and modified querysets. ([2704][gh2704], [2727][gh2727])
- Fix assertion error when CursorPagination is provided with certains invalid query parameters. (2920)[gh2920].
- Fix
UnicodeDecodeError when invalid characters included in header withTokenAuthentication. ([2928][gh2928]) - Fix transaction rollbacks with
non_atomic_requests decorator. ([3016][gh3016]) - Fix duplicate results issue with Oracle databases using
SearchFilter. ([2935][gh2935]) - Fix checkbox alignment and rendering in browsable API forms. ([2783][gh2783])
- Fix for unsaved file objects which should use
"url": null in the representation. ([2759][gh2759]) - Fix field value rendering in browsable API. ([2416][gh2416])
- Fix
HStoreField to includeallow_blank=True inDictField mapping. ([2659][gh2659]) - Numerous other cleanups, improvements to error messaging, private API & minor fixes.
3.1.x series
3.1.3
Date:4th June 2015.
- Add
DurationField. ([2481][gh2481], [2989][gh2989]) - Add
format argument toUUIDField. ([2788][gh2788], [3000][gh3000]) MultipleChoiceField empties incorrectly on a partial update using multipart/form-data ([2993][gh2993], [2894][gh2894])- Fix a bug in options related to read-only
RelatedField. ([2981][gh2981], [2811][gh2811]) - Fix nested serializers with
unique_together relations. ([2975][gh2975]) - Allow unexpected values for
ChoiceField/MultipleChoiceField representations. ([2839][gh2839], [2940][gh2940]) - Rollback the transaction on error if
ATOMIC_REQUESTS is set. ([2887][gh2887], [2034][gh2034]) - Set the action on a view when override_method regardless of its None-ness. ([2933][gh2933])
DecimalField accepts2E+2 as 200 and validates decimal place correctly. ([2948][gh2948], [2947][gh2947])- Support basic authentication with custom
UserModel that changeusername. ([2952][gh2952]) IPAddressField improvements. ([2747][gh2747], [2618][gh2618], [3008][gh3008])- Improve
DecimalField for easier subclassing. ([2695][gh2695])
3.1.2
Date:13rd May 2015.
DateField.to_representation can handle str and empty values. ([2656][gh2656], [2687][gh2687], [2869][gh2869])- Use default reason phrases from HTTP standard. ([2764][gh2764], [2763][gh2763])
- Raise error when
ModelSerializer used with abstract model. ([2757][gh2757], [2630][gh2630]) - Handle reversal of non-API view_name in
HyperLinkedRelatedField ([2724][gh2724], [2711][gh2711]) - Dont require pk strictly for related fields. ([2745][gh2745], [2754][gh2754])
- Metadata detects null boolean field type. ([2762][gh2762])
- Proper handling of depth in nested serializers. ([2798][gh2798])
- Display viewset without paginator. ([2807][gh2807])
- Don't check for deprecated
.model attribute in permissions ([2818][gh2818]) - Restrict integer field to integers and strings. ([2835][gh2835], [2836][gh2836])
- Improve
IntegerField to use compiled decimal regex. ([2853][gh2853]) - Prevent empty
queryset to raise AssertionError. ([2862][gh2862]) DjangoModelPermissions rely onget_queryset. ([2863][gh2863])- Check
AcceptHeaderVersioning with content negotiation in place. ([2868][gh2868]) - Allow
DjangoObjectPermissions to use views that defineget_queryset. ([2905][gh2905])
3.1.1
Date:23rd March 2015.
- Security fix: Escape tab switching cookie name in browsable API.
- Display input forms in browsable API if
serializer_class is used, even whenget_serializer method does not exist on the view. ([2743][gh2743]) - Use a password input for the AuthTokenSerializer. ([2741][gh2741])
- Fix missing anchor closing tag after next button. ([2691][gh2691])
- Fix
lookup_url_kwarg handling in viewsets. ([2685][gh2685], [2591][gh2591]) - Fix problem with importing
rest_framework.views inapps.py ([2678][gh2678]) - LimitOffsetPagination raises
TypeError if PAGE_SIZE not set ([2667][gh2667], [2700][gh2700]) - German translation for
min_value field error message referencesmax_value. ([2645][gh2645]) - Remove
MergeDict. ([2640][gh2640]) - Support serializing unsaved models with related fields. ([2637][gh2637], [2641][gh2641])
- Allow blank/null on radio.html choices. ([2631][gh2631])
3.1.0
Date:5th March 2015.
3.0.x series
3.0.5
Date:10th February 2015.
- Fix a bug where
_closable_objects breaks pickling. ([1850][gh1850], [2492][gh2492]) - Allow non-standard
User models withThrottling. ([2524][gh2524]) - Support custom
User.db_table in TokenAuthentication migration. ([2479][gh2479]) - Fix misleading
AttributeError tracebacks onRequest objects. ([2530][gh2530], [2108][gh2108]) ManyRelatedField.get_value clearing field on partial update. ([2475][gh2475])- Removed '.model' shortcut from code. ([2486][gh2486])
- Fix
detail_route andlist_route mutable argument. ([2518][gh2518]) - Prefetching the user object when getting the token in
TokenAuthentication. ([2519][gh2519])
3.0.4
Date:28th January 2015.
- Django 1.8a1 support. ([2425][gh2425], [2446][gh2446], [2441][gh2441])
- Add
DictField and support Django 1.8HStoreField. ([2451][gh2451], [2106][gh2106]) - Add
UUIDField and support Django 1.8UUIDField. ([2448][gh2448], [2433][gh2433], [2432][gh2432]) BaseRenderer.render now raisesNotImplementedError. ([2434][gh2434])- Fix timedelta JSON serialization on Python 2.6. ([2430][gh2430])
ResultDict andResultList now appear as standard dict/list. ([2421][gh2421])- Fix visible
HiddenField in the HTML form of the web browsable API page. ([2410][gh2410]) - Use
OrderedDict forRelatedField.choices. ([2408][gh2408]) - Fix ident format when using
HTTP_X_FORWARDED_FOR. ([2401][gh2401]) - Fix invalid key with memcached while using throttling. ([2400][gh2400])
- Fix
FileUploadParser with version 3.x. ([2399][gh2399]) - Fix the serializer inheritance. ([2388][gh2388])
- Fix caching issues with
ReturnDict. ([2360][gh2360])
3.0.3
Date:8th January 2015.
- Fix
MinValueValidator onmodels.DateField. ([2369][gh2369]) - Fix serializer missing context when pagination is used. ([2355][gh2355])
- Namespaced router URLs are now supported by the
DefaultRouter. ([2351][gh2351]) required=False allows omission of value for output. ([2342][gh2342])- Use textarea input for
models.TextField. ([2340][gh2340]) - Use custom
ListSerializer for pagination if required. ([2331][gh2331], [2327][gh2327]) - Better behavior with null and '' for blank HTML fields. ([2330][gh2330])
- Ensure fields in
exclude are model fields. ([2319][gh2319]) - Fix
IntegerField andmax_length argument incompatibility. ([2317][gh2317]) - Fix the YAML encoder for 3.0 serializers. ([2315][gh2315], [2283][gh2283])
- Fix the behavior of empty HTML fields. ([2311][gh2311], [1101][gh1101])
- Fix Metaclass attribute depth ignoring fields attribute. ([2287][gh2287])
- Fix
format_suffix_patterns to work with Django'si18n_patterns. ([2278][gh2278]) - Ability to customize router URLs for custom actions, using
url_path. ([2010][gh2010]) - Don't install Django REST Framework as egg. ([2386][gh2386])
3.0.2
Date:17th December 2014.
- Ensure
request.user is made available to response middleware. ([2155][gh2155]) Client.logout() also cancels any existingforce_authenticate. ([2218][gh2218], [2259][gh2259])- Extra assertions and better checks to preventing incorrect serializer API use. ([2228][gh2228], [2234][gh2234], [2262][gh2262], [2263][gh2263], [2266][gh2266], [2267][gh2267], [2289][gh2289], [2291][gh2291])
- Fixed
min_length message forCharField. ([2255][gh2255]) - Fix
UnicodeDecodeError, which can occur on serializerrepr. ([2270][gh2270], [2279][gh2279]) - Fix empty HTML values when a default is provided. ([2280][gh2280], [2294][gh2294])
- Fix
SlugRelatedField raisingUnicodeEncodeError when used as a multiple choice input. ([2290][gh2290])
3.0.1
Date:11th December 2014.
- More helpful error message when the default Serializer
create() fails. ([2013][gh2013]) - Raise error when attempting to save serializer if data is not valid. ([2098][gh2098])
- Fix
FileUploadParser breaks with empty file names and multiple upload handlers. ([2109][gh2109]) - Improve
BindingDict to support standard dict-functions. ([2135][gh2135], [2163][gh2163]) - Add
validate() toListSerializer. ([2168][gh2168], [2225][gh2225], [2232][gh2232]) - Fix JSONP renderer failing to escape some characters. ([2169][gh2169], [2195][gh2195])
- Add missing default style for
FileField. ([2172][gh2172]) - Actions are required when calling
ViewSet.as_view(). ([2175][gh2175]) - Add
allow_blank toChoiceField. ([2184][gh2184], [2239][gh2239]) - Cosmetic fixes in the HTML renderer. ([2187][gh2187])
- Raise error if
fields on serializer is not a list of strings. ([2193][gh2193], [2213][gh2213]) - Improve checks for nested creates and updates. ([2194][gh2194], [2196][gh2196])
validated_attrs argument renamed tovalidated_data inSerializercreate()/update(). ([2197][gh2197])- Remove deprecated code to reflect the dropped Django versions. ([2200][gh2200])
- Better serializer errors for nested writes. ([2202][gh2202], [2215][gh2215])
- Fix pagination and custom permissions incompatibility. ([2205][gh2205])
- Raise error if
fields on serializer is not a list of strings. ([2213][gh2213]) - Add missing translation markers for relational fields. ([2231][gh2231])
- Improve field lookup behavior for dicts/mappings. ([2244][gh2244], [2243][gh2243])
- Optimized hyperlinked PK. ([2242][gh2242])
3.0.0
Date: 1st December 2014
For older release notes,please see the version 2.x documentation.
<!-- 3.0.1 -->
[gh2013]:encode/django-rest-framework#2013
[gh2098]:encode/django-rest-framework#2098
[gh2109]:encode/django-rest-framework#2109
[gh2135]:encode/django-rest-framework#2135
[gh2163]:encode/django-rest-framework#2163
[gh2168]:encode/django-rest-framework#2168
[gh2169]:encode/django-rest-framework#2169
[gh2172]:encode/django-rest-framework#2172
[gh2175]:encode/django-rest-framework#2175
[gh2184]:encode/django-rest-framework#2184
[gh2187]:encode/django-rest-framework#2187
[gh2193]:encode/django-rest-framework#2193
[gh2194]:encode/django-rest-framework#2194
[gh2195]:encode/django-rest-framework#2195
[gh2196]:encode/django-rest-framework#2196
[gh2197]:encode/django-rest-framework#2197
[gh2200]:encode/django-rest-framework#2200
[gh2202]:encode/django-rest-framework#2202
[gh2205]:encode/django-rest-framework#2205
[gh2213]:encode/django-rest-framework#2213
[gh2213]:encode/django-rest-framework#2213
[gh2215]:encode/django-rest-framework#2215
[gh2225]:encode/django-rest-framework#2225
[gh2231]:encode/django-rest-framework#2231
[gh2232]:encode/django-rest-framework#2232
[gh2239]:encode/django-rest-framework#2239
[gh2242]:encode/django-rest-framework#2242
[gh2243]:encode/django-rest-framework#2243
[gh2244]:encode/django-rest-framework#2244
<!-- 3.0.2 -->
[gh2155]:encode/django-rest-framework#2155
[gh2218]:encode/django-rest-framework#2218
[gh2228]:encode/django-rest-framework#2228
[gh2234]:encode/django-rest-framework#2234
[gh2255]:encode/django-rest-framework#2255
[gh2259]:encode/django-rest-framework#2259
[gh2262]:encode/django-rest-framework#2262
[gh2263]:encode/django-rest-framework#2263
[gh2266]:encode/django-rest-framework#2266
[gh2267]:encode/django-rest-framework#2267
[gh2270]:encode/django-rest-framework#2270
[gh2279]:encode/django-rest-framework#2279
[gh2280]:encode/django-rest-framework#2280
[gh2289]:encode/django-rest-framework#2289
[gh2290]:encode/django-rest-framework#2290
[gh2291]:encode/django-rest-framework#2291
[gh2294]:encode/django-rest-framework#2294
<!-- 3.0.3 -->
[gh1101]:encode/django-rest-framework#1101
[gh2010]:encode/django-rest-framework#2010
[gh2278]:encode/django-rest-framework#2278
[gh2283]:encode/django-rest-framework#2283
[gh2287]:encode/django-rest-framework#2287
[gh2311]:encode/django-rest-framework#2311
[gh2315]:encode/django-rest-framework#2315
[gh2317]:encode/django-rest-framework#2317
[gh2319]:encode/django-rest-framework#2319
[gh2327]:encode/django-rest-framework#2327
[gh2330]:encode/django-rest-framework#2330
[gh2331]:encode/django-rest-framework#2331
[gh2340]:encode/django-rest-framework#2340
[gh2342]:encode/django-rest-framework#2342
[gh2351]:encode/django-rest-framework#2351
[gh2355]:encode/django-rest-framework#2355
[gh2369]:encode/django-rest-framework#2369
[gh2386]:encode/django-rest-framework#2386
<!-- 3.0.4 -->
[gh2425]:encode/django-rest-framework#2425
[gh2446]:encode/django-rest-framework#2446
[gh2441]:encode/django-rest-framework#2441
[gh2451]:encode/django-rest-framework#2451
[gh2106]:encode/django-rest-framework#2106
[gh2448]:encode/django-rest-framework#2448
[gh2433]:encode/django-rest-framework#2433
[gh2432]:encode/django-rest-framework#2432
[gh2434]:encode/django-rest-framework#2434
[gh2430]:encode/django-rest-framework#2430
[gh2421]:encode/django-rest-framework#2421
[gh2410]:encode/django-rest-framework#2410
[gh2408]:encode/django-rest-framework#2408
[gh2401]:encode/django-rest-framework#2401
[gh2400]:encode/django-rest-framework#2400
[gh2399]:encode/django-rest-framework#2399
[gh2388]:encode/django-rest-framework#2388
[gh2360]:encode/django-rest-framework#2360
<!-- 3.0.5 -->
[gh1850]:encode/django-rest-framework#1850
[gh2108]:encode/django-rest-framework#2108
[gh2475]:encode/django-rest-framework#2475
[gh2479]:encode/django-rest-framework#2479
[gh2486]:encode/django-rest-framework#2486
[gh2492]:encode/django-rest-framework#2492
[gh2518]:encode/django-rest-framework#2518
[gh2519]:encode/django-rest-framework#2519
[gh2524]:encode/django-rest-framework#2524
[gh2530]:encode/django-rest-framework#2530
<!-- 3.1.1 -->
[gh2691]:encode/django-rest-framework#2691
[gh2685]:encode/django-rest-framework#2685
[gh2591]:encode/django-rest-framework#2591
[gh2678]:encode/django-rest-framework#2678
[gh2667]:encode/django-rest-framework#2667
[gh2700]:encode/django-rest-framework#2700
[gh2645]:encode/django-rest-framework#2645
[gh2640]:encode/django-rest-framework#2640
[gh2637]:encode/django-rest-framework#2637
[gh2641]:encode/django-rest-framework#2641
[gh2631]:encode/django-rest-framework#2631
[gh2741]:encode/django-rest-framework#2641
[gh2743]:encode/django-rest-framework#2643
<!-- 3.1.2 -->
[gh2656]:encode/django-rest-framework#2656
[gh2687]:encode/django-rest-framework#2687
[gh2869]:encode/django-rest-framework#2869
[gh2764]:encode/django-rest-framework#2764
[gh2763]:encode/django-rest-framework#2763
[gh2757]:encode/django-rest-framework#2757
[gh2630]:encode/django-rest-framework#2630
[gh2724]:encode/django-rest-framework#2724
[gh2711]:encode/django-rest-framework#2711
[gh2745]:encode/django-rest-framework#2745
[gh2754]:encode/django-rest-framework#2754
[gh2762]:encode/django-rest-framework#2762
[gh2798]:encode/django-rest-framework#2798
[gh2807]:encode/django-rest-framework#2807
[gh2818]:encode/django-rest-framework#2818
[gh2835]:encode/django-rest-framework#2835
[gh2836]:encode/django-rest-framework#2836
[gh2853]:encode/django-rest-framework#2853
[gh2862]:encode/django-rest-framework#2862
[gh2863]:encode/django-rest-framework#2863
[gh2868]:encode/django-rest-framework#2868
[gh2905]:encode/django-rest-framework#2905
<!-- 3.1.3 -->
[gh2481]:encode/django-rest-framework#2481
[gh2989]:encode/django-rest-framework#2989
[gh2788]:encode/django-rest-framework#2788
[gh3000]:encode/django-rest-framework#3000
[gh2993]:encode/django-rest-framework#2993
[gh2894]:encode/django-rest-framework#2894
[gh2981]:encode/django-rest-framework#2981
[gh2811]:encode/django-rest-framework#2811
[gh2975]:encode/django-rest-framework#2975
[gh2839]:encode/django-rest-framework#2839
[gh2940]:encode/django-rest-framework#2940
[gh2887]:encode/django-rest-framework#2887
[gh2034]:encode/django-rest-framework#2034
[gh2933]:encode/django-rest-framework#2933
[gh2948]:encode/django-rest-framework#2948
[gh2947]:encode/django-rest-framework#2947
[gh2952]:encode/django-rest-framework#2952
[gh2747]:encode/django-rest-framework#2747
[gh2618]:encode/django-rest-framework#2618
[gh3008]:encode/django-rest-framework#3008
[gh2695]:encode/django-rest-framework#2695
<!-- 3.2.0 -->
[gh1854]:encode/django-rest-framework#1854
[gh2250]:encode/django-rest-framework#2250
[gh2416]:encode/django-rest-framework#2416
[gh2539]:encode/django-rest-framework#2539
[gh2659]:encode/django-rest-framework#2659
[gh2690]:encode/django-rest-framework#2690
[gh2704]:encode/django-rest-framework#2704
[gh2712]:encode/django-rest-framework#2712
[gh2727]:encode/django-rest-framework#2727
[gh2759]:encode/django-rest-framework#2759
[gh2766]:encode/django-rest-framework#2766
[gh2783]:encode/django-rest-framework#2783
[gh2789]:encode/django-rest-framework#2789
[gh2804]:encode/django-rest-framework#2804
[gh2886]:encode/django-rest-framework#2886
[gh2915]:encode/django-rest-framework#2915
[gh2920]:encode/django-rest-framework#2920
[gh2926]:encode/django-rest-framework#2926
[gh2928]:encode/django-rest-framework#2928
[gh2935]:encode/django-rest-framework#2935
[gh3011]:encode/django-rest-framework#3011
[gh3016]:encode/django-rest-framework#3016
[gh3024]:encode/django-rest-framework#3024
[gh3115]:encode/django-rest-framework#3115
[gh3139]:encode/django-rest-framework#3139
[gh3165]:encode/django-rest-framework#3165
[gh3216]:encode/django-rest-framework#3216
[gh3225]:encode/django-rest-framework#3225
<!-- 3.2.1 -->
[gh3237]:encode/django-rest-framework#3237
[gh3227]:encode/django-rest-framework#3227
[gh3238]:encode/django-rest-framework#3238
[gh3239]:encode/django-rest-framework#3239
<!-- 3.2.2 -->
[gh3254]:encode/django-rest-framework#3254
[gh3258]:encode/django-rest-framework#3258
[gh2776]:encode/django-rest-framework#2776
[gh3261]:encode/django-rest-framework#3261
[gh3260]:encode/django-rest-framework#3260
[gh3241]:encode/django-rest-framework#3241
<!-- 3.2.3 -->
[gh3249]:encode/django-rest-framework#3249
[gh3250]:encode/django-rest-framework#3250
[gh3275]:encode/django-rest-framework#3275
[gh3288]:encode/django-rest-framework#3288
[gh3290]:encode/django-rest-framework#3290
[gh3303]:encode/django-rest-framework#3303
[gh3313]:encode/django-rest-framework#3313
[gh3316]:encode/django-rest-framework#3316
[gh3318]:encode/django-rest-framework#3318
[gh3321]:encode/django-rest-framework#3321
<!-- 3.2.4 -->
[gh2761]:encode/django-rest-framework#2761
[gh3314]:encode/django-rest-framework#3314
[gh3323]:encode/django-rest-framework#3323
[gh3324]:encode/django-rest-framework#3324
[gh3359]:encode/django-rest-framework#3359
[gh3361]:encode/django-rest-framework#3361
[gh3364]:encode/django-rest-framework#3364
[gh3415]:encode/django-rest-framework#3415
<!-- 3.2.5 -->
[gh3550]:encode/django-rest-framework#3550
<!-- 3.3.0 -->
[gh3315]:encode/django-rest-framework#3315
[gh3410]:encode/django-rest-framework#3410
[gh3435]:encode/django-rest-framework#3435
[gh3450]:encode/django-rest-framework#3450
[gh3454]:encode/django-rest-framework#3454
[gh3475]:encode/django-rest-framework#3475
[gh3495]:encode/django-rest-framework#3495
[gh3509]:encode/django-rest-framework#3509
[gh3421]:encode/django-rest-framework#3421
[gh3525]:encode/django-rest-framework#3525
[gh3526]:encode/django-rest-framework#3526
[gh3429]:encode/django-rest-framework#3429
[gh3536]:encode/django-rest-framework#3536
<!-- 3.3.1 -->
[gh3556]:encode/django-rest-framework#3556
[gh3560]:encode/django-rest-framework#3560
[gh3564]:encode/django-rest-framework#3564
[gh3568]:encode/django-rest-framework#3568
[gh3592]:encode/django-rest-framework#3592
[gh3593]:encode/django-rest-framework#3593
<!-- 3.3.2 -->
[gh3228]:encode/django-rest-framework#3228
[gh3252]:encode/django-rest-framework#3252
[gh3513]:encode/django-rest-framework#3513
[gh3534]:encode/django-rest-framework#3534
[gh3578]:encode/django-rest-framework#3578
[gh3596]:encode/django-rest-framework#3596
[gh3597]:encode/django-rest-framework#3597
[gh3600]:encode/django-rest-framework#3600
[gh3626]:encode/django-rest-framework#3626
[gh3628]:encode/django-rest-framework#3628
[gh3631]:encode/django-rest-framework#3631
[gh3634]:encode/django-rest-framework#3634
[gh3635]:encode/django-rest-framework#3635
[gh3654]:encode/django-rest-framework#3654
[gh3655]:encode/django-rest-framework#3655
[gh3656]:encode/django-rest-framework#3656
[gh3662]:encode/django-rest-framework#3662
[gh3668]:encode/django-rest-framework#3668
[gh3672]:encode/django-rest-framework#3672
[gh3677]:encode/django-rest-framework#3677
[gh3679]:encode/django-rest-framework#3679
[gh3684]:encode/django-rest-framework#3684
[gh3687]:encode/django-rest-framework#3687
[gh3701]:encode/django-rest-framework#3701
[gh3705]:encode/django-rest-framework#3705
[gh3714]:encode/django-rest-framework#3714
[gh3718]:encode/django-rest-framework#3718
[gh3723]:encode/django-rest-framework#3723
<!-- 3.3.3 -->
[gh3968]:encode/django-rest-framework#3968
[gh3962]:encode/django-rest-framework#3962
[gh3913]:encode/django-rest-framework#3913
[gh3912]:encode/django-rest-framework#3912
[gh3910]:encode/django-rest-framework#3910
[gh3903]:encode/django-rest-framework#3903
[gh3887]:encode/django-rest-framework#3887
[gh3878]:encode/django-rest-framework#3878
[gh3860]:encode/django-rest-framework#3860
[gh3858]:encode/django-rest-framework#3858
[gh3842]:encode/django-rest-framework#3842
[gh3833]:encode/django-rest-framework#3833
[gh3832]:encode/django-rest-framework#3832
[gh3819]:encode/django-rest-framework#3819
[gh3815]:encode/django-rest-framework#3815
[gh3809]:encode/django-rest-framework#3809
[gh3805]:encode/django-rest-framework#3805
[gh3804]:encode/django-rest-framework#3804
[gh3801]:encode/django-rest-framework#3801
[gh3787]:encode/django-rest-framework#3787
[gh3786]:encode/django-rest-framework#3786
[gh3785]:encode/django-rest-framework#3785
[gh3774]:encode/django-rest-framework#3774
[gh3769]:encode/django-rest-framework#3769
[gh3753]:encode/django-rest-framework#3753
[gh3739]:encode/django-rest-framework#3739
[gh3731]:encode/django-rest-framework#3731
[gh3728]:encode/django-rest-framework#3726
[gh3715]:encode/django-rest-framework#3715
[gh3703]:encode/django-rest-framework#3703
[gh3696]:encode/django-rest-framework#3696
[gh3637]:encode/django-rest-framework#3637
[gh3636]:encode/django-rest-framework#3636
[gh3605]:encode/django-rest-framework#3605
[gh3604]:encode/django-rest-framework#3604
<!-- 3.4.0 -->
[gh2403]:encode/django-rest-framework#2403
[gh2848]:encode/django-rest-framework#2848
[gh2996]:encode/django-rest-framework#2996
[gh3164]:encode/django-rest-framework#3164
[gh3273]:encode/django-rest-framework#3273
[gh3381]:encode/django-rest-framework#3381
[gh3438]:encode/django-rest-framework#3438
[gh3444]:encode/django-rest-framework#3444
[gh3476]:encode/django-rest-framework#3476
[gh3487]:encode/django-rest-framework#3487
[gh3541]:encode/django-rest-framework#3541
[gh3710]:encode/django-rest-framework#3710
[gh3729]:encode/django-rest-framework#3729
[gh3751]:encode/django-rest-framework#3751
[gh3812]:encode/django-rest-framework#3812
[gh3816]:encode/django-rest-framework#3816
[gh3820]:encode/django-rest-framework#3820
[gh3906]:encode/django-rest-framework#3906
[gh3908]:encode/django-rest-framework#3908
[gh3926]:encode/django-rest-framework#3926
[gh3933]:encode/django-rest-framework#3933
[gh3936]:encode/django-rest-framework#3936
[gh3938]:encode/django-rest-framework#3938
[gh3943]:encode/django-rest-framework#3943
[gh3953]:encode/django-rest-framework#3953
[gh3964]:encode/django-rest-framework#3964
[gh3968]:encode/django-rest-framework#3968
[gh3970]:encode/django-rest-framework#3970
[gh3971]:encode/django-rest-framework#3971
[gh3976]:encode/django-rest-framework#3976
[gh3983]:encode/django-rest-framework#3983
[gh3990]:encode/django-rest-framework#3990
[gh4002]:encode/django-rest-framework#4002
[gh4003]:encode/django-rest-framework#4003
[gh4005]:encode/django-rest-framework#4005
[gh4006]:encode/django-rest-framework#4006
[gh4008]:encode/django-rest-framework#4008
[gh4021]:encode/django-rest-framework#4021
[gh4025]:encode/django-rest-framework#4025
[gh4040]:encode/django-rest-framework#4040
[gh4041]:encode/django-rest-framework#4041
[gh4049]:encode/django-rest-framework#4049
[gh4075]:encode/django-rest-framework#4075
[gh4079]:encode/django-rest-framework#4079
[gh4090]:encode/django-rest-framework#4090
[gh4097]:encode/django-rest-framework#4097
[gh4098]:encode/django-rest-framework#4098
[gh4103]:encode/django-rest-framework#4103
[gh4105]:encode/django-rest-framework#4105
[gh4106]:encode/django-rest-framework#4106
[gh4107]:encode/django-rest-framework#4107
[gh4118]:encode/django-rest-framework#4118
[gh4146]:encode/django-rest-framework#4146
[gh4149]:encode/django-rest-framework#4149
[gh4153]:encode/django-rest-framework#4153
[gh4156]:encode/django-rest-framework#4156
[gh4157]:encode/django-rest-framework#4157
[gh4158]:encode/django-rest-framework#4158
[gh4166]:encode/django-rest-framework#4166
[gh4176]:encode/django-rest-framework#4176
[gh4179]:encode/django-rest-framework#4179
[gh4180]:encode/django-rest-framework#4180
[gh4181]:encode/django-rest-framework#4181
[gh4185]:encode/django-rest-framework#4185
[gh4187]:encode/django-rest-framework#4187
[gh4191]:encode/django-rest-framework#4191
[gh4192]:encode/django-rest-framework#4192
[gh4194]:encode/django-rest-framework#4194
[gh4195]:encode/django-rest-framework#4195
[gh4196]:encode/django-rest-framework#4196
[gh4212]:encode/django-rest-framework#4212
[gh4215]:encode/django-rest-framework#4215
[gh4217]:encode/django-rest-framework#4217
[gh4219]:encode/django-rest-framework#4219
[gh4229]:encode/django-rest-framework#4229
[gh4233]:encode/django-rest-framework#4233
[gh4244]:encode/django-rest-framework#4244
[gh4246]:encode/django-rest-framework#4246
[gh4253]:encode/django-rest-framework#4253
[gh4254]:encode/django-rest-framework#4254
[gh4255]:encode/django-rest-framework#4255
[gh4256]:encode/django-rest-framework#4256
[gh4259]:https://github.com/tomchristie/django-rest-fram
djangorestframework is not pinned to a specific version.
I'm pinning it to the latest version3.5.1 for now.
These links might come in handy:PyPI |Changelog |Homepage
Changelog