Rokker Ruslan
ab7e5c4551
Added default value for 'detail' param into 'ValidationError' exception ( #5342 )
2017-09-26 10:24:30 +02:00
John Eskew
607e4edca7
Defer translated string evaluation on validators. ( #5452 )
...
* Customize validators to defer error string evaluation.
* Add docstring for `CustomValidatorMessage`
2017-09-26 10:02:20 +02:00
Ryan P Kilby
50acb9b2fe
Fix warning in AutoSchema.get_serializer_fields() ( #5451 )
2017-09-25 21:09:54 +02:00
Sigve Sebastian Farstad
bf0fbd5df1
Catch APIException in doc generation ( #5443 )
...
The documentation generator calls view.get_serializer() in order to
inspect it for documentation generation. However, if get_serializer()
throws an APIException (e.g. PermissionDenied), it doesn't get caught at
the call site, but instead propagates up and aborts the entire view.
With the try/except in this commit, the documentation generator instead
gratiously ignores that particular view and moves on to the next one
instead. Practical concequences of this commit is that the docs no
longer break if any view's get_serializer(..) throws an APIException.
2017-09-25 18:28:36 +02:00
Katharyn Garcia
5333565fe6
allow custom authentication and permission classes for docs view
2017-09-25 16:17:25 +02:00
Matt Davis
107e8b3d23
Make DEFAULT_PAGINATION_CLASS
None
by default. ( #5170 )
...
* Changes to the paginator defaults and settings
Require a default paginator be specified when using the page size
setting.
https://github.com/encode/django-rest-framework/issues/5168
* DRF-5168 import warnings
missed this in last commit
* Add a system checks file
Add a check for pagination settings for the 3.7 upgrade cycle.
* more compatible import approach
* missing bactic
* revised language and approach to import the system check
Adds a rest framework app config.
* Adjust doc wording
2017-09-25 15:36:30 +02:00
Kris Dorosz
60b9e58a12
Add support for page_size parameter in CursorPaginator class
2017-09-25 11:25:51 +02:00
Carlton Gibson
e29ad1e7b3
JSONEncoder: Don’t strip microseconds from time
...
Closes #4749 .
This is the matching commit to the fix for `datetime` in #4256
2017-09-25 10:10:44 +02:00
Ryan P Kilby
ea894cd90a
Add docstring to json wrapper module
2017-09-25 09:08:20 +02:00
Ryan P Kilby
c98223f231
Pass on invalid value (Inf, NaN) encoding in JSONBoundField
2017-09-25 09:08:20 +02:00
Ryan P Kilby
901657e7e8
Add banned imports to prevent standard json import
2017-09-25 09:08:20 +02:00
Ryan P Kilby
8ab75a2f01
Add 'STRICT_JSON' API setting.
...
STRICT_JSON controls the renderer & parser behavior on whether or not
to accept non-standard float values (NaN, Infinity).
2017-09-25 09:08:20 +02:00
Ryan P Kilby
d740bae95a
Update json imports
2017-09-25 09:08:20 +02:00
Ryan P Kilby
b64f8066c0
Add json util wrapper, failing JSONField test
2017-09-25 09:08:20 +02:00
Ryan P Kilby
f6c19e5eac
Remove DjangoFilterBackend and associated tests
2017-09-20 16:47:54 +02:00
Carlton Gibson
7d6d043531
Fix DateTimeField TZ handling ( #5435 )
...
* Add failing TZ tests for DateTimeField
- tests "current" timezone activation
- tests output for non-UTC timezones
* Update DateTimeField TZ aware/naive test output
* Fix DateTimeField TZ handling
* Add Release Note for BC change
2017-09-20 12:15:15 +02:00
Jeremy Nauta
c0a48622e1
Allow ChoiceField.choices
to be set dynamically ( #5426 )
...
## Description
The `choices` field for the `ChoiceField` class should be able to be edited after `ChoiceField.__init__` is called.
```
field = ChoiceField(choices=[1,2])
field.choices = [1] # Should no longer allow `2` as a choice
```
Currently, you must update `choices`, `grouped_choices`, and `choice_strings_to_values` to achieve this. This P/R keeps `grouped_choices` and `choice_strings_to_values` in sync whenever the `choices` are edited.
2017-09-20 11:33:50 +02:00
Carlton Gibson
7b1582e00e
Allow schema = None
. Deprecate exclude_from_schema
( #5422 )
...
* Add tests for schema exclusions
* Move exclusion check to should_include_endpoint
* Update docs
* Switch to using `schema = None`
* Test PendingDeprecationWarnings
* Add note to release notes.
* s/deprecated/pending deprecation/
* Add PR link to release notes
* Correct typo in test class name
* Test 'exclude_from_schema' deprecation warning message (#1 )
* Correct deprecation warning message
2017-09-20 11:29:47 +02:00
Carlton Gibson
efff9ff338
5378 fix schema generation markdown ( #5421 )
...
* Test case for #5240
* Remove unnecessary strip() from get_description
Closes #5240
* Adjust test case
2017-09-14 12:20:41 +01:00
Carlton Gibson
d54df8c438
Refactor schema generation to allow per-view customisation ( #5354 )
...
* Initial Refactor Step
* Add descriptor class
* call from generator
* proxy back to generator for implementation.
* Move `get_link` to descriptor
* Move `get_description` to descriptor
* Remove need for generator in get_description
* Move get_path_fields to descriptor
* Move `get_serializer_fields` to descriptor
* Move `get_pagination_fields` to descriptor
* Move `get_filter_fields` to descriptor
* Move `get_encoding` to descriptor.
* Pass just `url` from SchemaGenerator to descriptor
* Make `view` a property
Encapsulates check for a view instance.
* Adjust API Reference docs
* Add `ManualSchema` class
* Refactor to `ViewInspector` plus `AutoSchema`
The interface then is **just** `get_link()`
* Add `manual_fields` kwarg to AutoSchema
* Add schema decorator for FBVs
* Adjust comments
* Docs: Provide full params in example
Ref feedback b52e372f8f (r137254795)
* Add docstring for ViewInstpector.__get__ descriptor method.
Ref https://github.com/encode/django-rest-framework/pull/5354#discussion_r137265022
* Make `schemas` a package.
* Split generators, inspectors, views.
* Adjust imports
* Rename to EndpointEnumerator
* Adjust ManualSchema to take `fields`
… and `description`.
Allows `url` and `action` to remain dynamic
* Add package/module docstrings
2017-09-14 09:46:34 +01:00
Tom Christie
5ea810d526
Drop unnecessary TODO notes.
2017-09-14 09:44:59 +01:00
Sergei Azarkin
9aaea2586b
Fix authtoken managment command ( #5415 )
...
* Fix authtoken managment command username param
2017-09-12 14:03:29 +01:00
Carlton Gibson
71ad99e0b2
Merge pull request #5388 from founders4schools/fix/named-source
...
Fix ModelSerializer custom named fields with source on model
2017-09-04 17:24:36 +02:00
jhg14
3c1bf6bfd5
Add failing test for named attribute
...
Fix test crudely
Remove comment
2017-09-04 15:44:04 +01:00
Igor Tokarev
79be20a7c6
Updated supported values for the NullBooleanField ( #5387 )
...
* Updated supported values for the NullBooleanField.
* Added check for unhashable types in NullBooleanField.
2017-09-04 10:11:53 +01:00
Daniele Varrazzo
e42eb42d49
Don't make the content mandatory in the generic content form ( #5372 )
...
Sometimes, probably in the upgrade from Django 1.9 to 1.10, a post with
empty content is forbidden by javascript, with the message "Please fill
in this field". Filling the form with '{}' allows an application/json
request to be submitted.
The API call itself works perfectly well with a post with empty content:
the interface shouldn't make assumptions about it.
2017-09-04 10:04:48 +01:00
Carlton Gibson
7cd59147ea
Merge pull request #5376 from rpkilby/django-perms-queryset
...
DjangoModelPermissions should perform auth check before accessing the view's queryset
2017-09-04 08:24:40 +02:00
Ryan P Kilby
23b2d8099b
Unify QS handling for model/object permissions
2017-09-01 13:56:39 -04:00
Daniel Hahler
fff3db5517
Fix doc for ErrorDetail
2017-08-31 12:19:03 +02:00
Carlton Gibson
27c382c98d
Merge pull request #5351 from rpkilby/requestfactory-contenttype
...
Unexpected result when passing empty body to RequestFactory
2017-08-31 12:13:49 +02:00
Ryan P Kilby
0ec915e623
Force content_type inclusion in APIRequestFactory
2017-08-31 05:45:12 -04:00
Ryan P Kilby
07258ca032
Remove None handling from fields.get_attribute()
2017-08-30 17:42:12 -04:00
Denis Untevskiy
c8773671e7
+ Rejecting anonymous in DjangoModelPermissions *before* the .get_queryset call
2017-08-30 17:10:39 -04:00
Carlton Gibson
6a3b8cfa4c
Adjust wording
2017-08-22 20:44:19 +02:00
Felipe Bidu
6f2c3bcb12
Further clarifying the message when get_queryset returns None to include the class name that was called
2017-08-22 12:13:22 -03:00
Felipe Bidu
5fd01d06ab
Adding a more explicit error message when a view does have a get_queryset method but it returned nothing
2017-08-22 11:00:19 -03:00
Carlton Gibson
fed85bc29d
Merge pull request #5344 from carltongibson/3.6.4-release
...
Release notes etc for 3.6.4
2017-08-22 08:55:38 +02:00
Daniel Hahler
e389336ad7
docs/link.html: fix/remove undefined template var "schema"
2017-08-21 14:47:43 +02:00
Carlton Gibson
1a7ed29639
Update version number
2017-08-21 12:06:14 +02:00
Carlton Gibson
d875fb3272
Update compiled translations.
2017-08-21 12:05:25 +02:00
Carlton Gibson
68d818fcc7
Update content from Transifex
2017-08-21 12:02:14 +02:00
Carlton Gibson
d2286ba658
Merge pull request #5326 from limdauto/limdauto-patch-1
...
Fix introspection of list field in schema
2017-08-21 10:09:57 +02:00
Carlton Gibson
4d5e846ca7
Merge pull request #5334 from Woile/woile-nested-docs-fix
...
Fix docs multiple nested and multiple methods
2017-08-18 11:05:06 +02:00
kycool
c868378c71
Update fields.py
...
modify to_choices_dict document
2017-08-18 12:12:01 +08:00
Woile
a1546cc266
[NEW] Tests for templatetags.schema_links
2017-08-17 21:14:26 +02:00
Woile
11bc1fe282
Fix JS data binding
2017-08-17 12:33:59 +02:00
Woile
ed38371c3a
Fix docs multiple nested and multiple methods
2017-08-15 16:59:50 +02:00
Lim H
32a0b62508
Fix introspection of list field in schema
2017-08-12 18:59:03 +01:00
Alexander Dutton
e80b78d1cb
RemoteUserAuthentication, docs, and tests ( #5306 )
...
RemoteUserAuthentication, docs, and tests
2017-08-11 10:35:00 +01:00
Yury V. Zaytsev
96d6a9a6da
Docs: update link in pagination.py ( #5321 )
...
The blog post referenced in the documentation has been since moved to a new location.
2017-08-09 15:19:43 -04:00
Ryan P Kilby
26ebb88306
Revert 3288 ( #5313 )
...
* Add regression test for #2505 . Thanks @pySilver!
* Add regression test for #5087
* Revert "Cached the field's root and context property."
This reverts commit 792005806b
.
2017-08-07 16:52:09 +01:00
minusf
9ec89141ee
typo: may -> many
2017-07-20 23:42:51 +02:00
Erick Delfin
089887d56e
Simplified chained comparisons and minor code fixes ( #5276 )
2017-07-16 17:12:29 +01:00
Ryan P Kilby
d1cfec8d87
Fix SearchFilter to-many behavior by ANDing cond's
2017-07-10 14:50:47 -04:00
Tom Christie
6d4d4dfd04
Ensure closables in request.FILES get closed. ( #5262 )
...
Ensure closables on `.FILES` get closed.
2017-07-10 13:42:02 +01:00
elmccarthy
b905197f24
Fix issue #5258 ( #5259 )
...
Sanitize serializer.data to remove hidden fields before rendering template JSON instance to raw data form.
* Fix lint issues
2017-07-10 11:43:36 +01:00
Tom Christie
39f6f1137c
Merge pull request #5261 from encode/validation-error-on-invalid-timezone-parsing
...
Raise validation error on invalid timezone parsing.
2017-07-10 11:27:28 +01:00
Tom Christie
fbb3490989
Merge pull request #5188 from andreagrandi/auth-token-cmd
...
Add Django manage command to create a DRF user Token
2017-07-10 10:35:05 +01:00
Tom Christie
c7e2bad524
Merge pull request #5189 from myrubapa/master
...
Fix API documentation templates do not check for user authentication #5162
2017-07-10 10:28:33 +01:00
Tom Christie
bf7fcc495b
Raise validation error on invalid timezone parsing.
2017-07-10 10:14:31 +01:00
Tom Christie
3dab905656
Merge pull request #5231 from dmmatson/feature/slugfield-allow-unicode
...
Fixed tests on Windows. Added unicode support to SlugField
2017-07-07 12:41:52 +01:00
dmmatson
302a9d089e
Fixed tests on Windows. Added unicode support to SlugField
2017-06-23 23:11:17 -06:00
Venelin Stoykov
0e5d26fa6a
Fixed #5228 Set ViewSet args/kwargs/request before dispatch
2017-06-22 16:22:17 +03:00
José Padilla
9e72736af8
Merge pull request #5219 from blueyed/fix-doc-_authenticate
...
doc: fix documentation for Request._authenticate
2017-06-17 09:21:00 -04:00
Tom Christie
b069b0d33a
Merge pull request #5176 from levic/browsable-api-multipart-form-data
...
Fix browsable API not supporting multipart/form-data correctly
2017-06-16 15:08:27 +01:00
Levi Cameron
5cbfcbc56f
Fix regex typo allowing '[' in boundary string
2017-06-16 21:53:06 +10:00
Daniel Hahler
fe95ab675b
doc: fix documentation for Request._authenticate
...
It does not return anything.
2017-06-16 13:23:26 +02:00
Tom Christie
598e5877cd
Merge pull request #5192 from matteius/DRF-5135-one-to-one-pk
...
Special case for when OneToOneField is also primary key.
2017-06-16 12:06:12 +01:00
Dan Koch
4701f12c3e
Quote nested API parameters in api.js
...
I sometimes have parameter names with a period (.) in them, to represent nested objects, e.g. containerobj.inner_param. The Javascript was throwing an error in the browsable API when interacting with those parameters.
2017-06-13 16:01:02 -04:00
Daniel Hahler
515fe928d5
Use stacklevel=2 with DeprecationWarnings
...
This makes the warnings refer to the code where it is used, which makes
it easier to find and fix.
2017-06-12 14:59:29 +02:00
Andrea Grandi
d2459710ca
Implement option to reset User token
2017-06-03 11:58:01 +01:00
Andrea Grandi
34c38e0cfe
Use self.sdtout and CommandError to print output
2017-06-03 11:06:14 +01:00
Andrea Grandi
cf196a4424
Get UserModel from get_user_model and do not infer the natural key
2017-06-03 10:38:01 +01:00
Pierre Sassoulas
903ef4917a
Feat - Added aria-label and a new region for accessibility purpose
...
Navigating the page with a reader is easier is there is aria-label
and region.
https://www.w3.org/WAI/
2017-06-02 09:49:00 +02:00
Andrea Grandi
be590d61c0
Handle invalid User situation
2017-05-31 23:01:35 +01:00
Levi Cameron
6b8d6019ea
Fix boundary detection regex not handling spaces inside boundary marker correctly
2017-05-31 13:18:17 +10:00
Matt Davis
6115815108
Special case for when OneToOneField is also primary key.
...
https://github.com/encode/django-rest-framework/issues/5135
2017-05-30 13:57:45 -04:00
Levi Cameron
1c44ef2b11
Improvements to code clarity
2017-05-30 10:43:33 +10:00
Bekhzod Tillakhanov
c96fa224c7
Fix ul inner li
2017-05-30 00:29:11 +05:00
Bekhzod Tillakhanov
84e22cc2f3
Scheme fix when unauth and Flask8 lint fix
2017-05-30 00:15:07 +05:00
Andrea Grandi
d198b1abe6
Add Django manage command to create a DRF user Token
2017-05-29 17:07:50 +01:00
Tom Christie
9c9525b130
Merge pull request #5187 from mathpresso-mom/list_route_regex
...
Fix list_route, detail_route with kwargs contains curly bracket in url_path
2017-05-29 13:47:19 +01:00
이동환
0ad017a573
requested changes
2017-05-29 20:55:06 +09:00
Tom Christie
823eea2d59
Merge pull request #5147 from imdark/patch-1
...
Improve memory footprint when reading large JSON requests.
2017-05-29 11:55:53 +01:00
Tom Christie
e2157fbf7c
Merge pull request #5174 from tadhg-ohiggins/html_cutoff_none
...
Fix exception when HTML_CUTOFF is set to None
2017-05-29 11:54:03 +01:00
Dryice Liu
04adfb9c94
make sure max_length is in FileField kwargs
2017-05-28 04:14:56 +08:00
이동환
e6c9f89a12
Fixed curly bracket in regexp of @list_route
2017-05-25 19:13:45 +09:00
Levi Cameron
94c37c09c5
Fix browsable API not supporting multipart/form-data correctly
...
- Autodetect missing boundary parameter for Content-Type header
- textarea value normalises EOL chars to \n when multipart/form-data requires \r\n
2017-05-25 20:07:34 +10:00
imdark
cdeab1c490
fixed to pass isort linting
2017-05-24 18:12:38 -07:00
imdark
9a22811671
modified to use a reader
...
modified to use a reader since direct decoding is not supported
2017-05-24 17:56:49 -07:00
Tadhg O'Higgins
99782c2160
Add tests for HTML_CUTOFF setting and fix issue where setting it to None would raise an exception.
2017-05-24 16:46:18 -07:00
Matt Davis
99569190ab
If pagination class, include the schema generation
...
https://github.com/encode/django-rest-framework/issues/5144
2017-05-22 19:10:54 -04:00
Thomas Achtemichuk
70205cc64e
Lint
2017-05-17 15:17:55 -04:00
Thomas Achtemichuk
c9c383dfad
Don't trim whitespace from authtoken passwords
...
* Fixes #5148
2017-05-17 14:52:39 -04:00
imdark
3a2ad8e68c
in order to solve the memory leak at #5146
...
Large encoded string take a very long time to to release from memory, but if we just pass the stream directly into json.load we get much better memory performance.
2017-05-17 11:49:30 -07:00
Daniel Hahler
09f62e11a0
Possible fix
2017-05-16 12:07:04 +02:00
Vimarsh Chaturvedi
7b4afdc737
Merge branch 'master' into issue4989
2017-05-13 19:10:47 +05:30
vimarshc
b2d6149301
importing regex constant to remove invalid parameters.
2017-05-13 05:14:32 +05:30
Tom Christie
a99f12f1c6
Merge branch 'master' into version-3-6-3
2017-05-12 17:03:32 +01:00
Tom Christie
42f80c65a9
Version 3.6.3
2017-05-12 16:52:27 +01:00