Commit Graph

133 Commits

Author SHA1 Message Date
José Padilla
0d109c90a7 Add context to exception handler #2236
Same context as renderers which include: the view,
args, kwargs, and request.

This provides enough contextual information to the
exception handlers to handle errors better.

In a use case like #1671, a custom handler
would allow Sentry to log the request properly.
2014-12-13 18:18:00 -04:00
Tymur Maryokhin
d54c67d79d Removed custom StringIO, force_text, smart_text compat 2014-12-04 03:11:42 +01:00
Tom Christie
d9a199ca0d exceptions.ValidationFailed, not Django's ValidationError 2014-10-10 14:16:09 +01:00
Craig de Stigter
dfab9af294 Minor: fix spelling and grammar, mostly in 3.0 announcement 2014-10-03 08:41:18 +13:00
Tom Christie
f4b1dcb167 OPTIONS support 2014-09-24 14:09:49 +01:00
Tom Christie
6db3356c4d NON_FIELD_ERRORS_KEY setting 2014-09-12 10:21:35 +01:00
Tom Christie
19b8f779de Throttles now use Retry-After header and no longer support the custom style 2014-09-11 20:43:44 +01:00
Tom Christie
de301f3b66 Merge master 2014-09-11 13:20:44 +01:00
Tom Christie
21980b800d More test sorting 2014-09-08 14:24:05 +01:00
Piper Merriam
fc9be55d43 Alter CSRF exemption implementation
The previous implementation of decorating `APIView.dispach` with the
`csrf_exempt` decorator allowed for an easy-to-make mistake where
someone could override the `dispatch` method on a view and inadvertantly
remove the csrf exemption of their api view.

By moving the decoration of the view into the `as_view` logic, it
becomes much more difficult to make this mistake.
2014-09-03 09:50:31 -06:00
Dmitry Mukhin
3b07d0c997 Merge branch 'master' into set-retry-after
Conflicts:
	tests/test_throttling.py
2014-08-20 20:04:48 +04:00
Tom Christie
bf09c32de8 Code linting and added runtests.py 2014-08-19 13:28:07 +01:00
Dmitry Mukhin
c3891b6e00 set Retry-After header when throttled 2014-04-07 20:31:12 +04:00
David Larlet
07cb436d61 Typo in keywords arguments name
Because it matters ;)
2014-03-04 16:32:34 +01:00
hongfeiZhang
693d9d9c63 In the method permission_denied, did not use the request parameter. 2014-03-01 11:37:31 +08:00
Tom Christie
18f26ff5cc Only add 'Vary: Accept' header when there is more than one possible renderer. 2014-01-30 17:47:55 +00:00
Tom Christie
9f0ead9597 Remove TODO note, since it hasn't been TODONE. 2014-01-30 17:32:05 +00:00
Tom Christie
6302307885 Update comment in get_parser_context. 2013-10-24 13:45:16 +01:00
Andy Freeland
b5523bcc7d Support customizable view EXCEPTION_HANDLER
Add `api_settings.EXCEPTION_HANDLER` to support custom error responses.

Fixes #907.
2013-09-06 12:47:33 -05:00
Tom Christie
b54cbd292c Use view.settings for API settings, to make testing easier. 2013-08-27 12:36:06 +01:00
Tom Christie
b430503fa6 Move exception handler out of main view 2013-08-27 12:32:33 +01:00
Tom Christie
5120670624 Document customizable view names/descriptions 2013-08-19 08:45:53 +01:00
Tom Christie
89b0a539c3 Move view name/description functions into public space 2013-08-19 08:24:27 +01:00
Christopher Paolini
e6662d434f Improved view/description function setting
Now supports each View having its own name and description function and
overriding the global default.
2013-08-17 17:44:51 -04:00
Jeremy Satterfield
1d8a80f5cc don't set X-Throttle-Wait-Second header if throttle wait is None 2013-08-13 15:31:58 -05:00
Tom Christie
8cc63b09f6 Add support for StreamingHttpResponse. Closes #939 2013-06-21 22:42:04 +01:00
Ethan Fremen
ae2887ffc4 Set the args and kwargs before initializing the request.
Allows get_parser_context to function correctly.

Signed-off-by: Ethan Fremen <ethan@matterport.com>
2013-06-07 19:25:39 -07:00
Tom Christie
40e09472d8 Never deepcopy validators. Closes #913 2013-06-06 08:56:39 +01:00
Tom Christie
fcaee6e580 Clean up OPTIONS implementation 2013-05-24 23:44:23 +01:00
Oscar Vilaplana
a1deb5eac7 simplified, moved field humanizing to Field. broken tests 2013-05-23 08:26:55 +02:00
Oscar Vilaplana
7a5cd090aa fixed tests, added docs, renamed helper method 2013-05-19 15:45:33 +02:00
Nikolaus Schlemm
88c94f3720 Merge remote-tracking branch 'grimborg/issue-192-expose-fields-for-options' into issue-192-expose-fields-for-options 2013-05-19 14:58:11 +02:00
Oscar Vilaplana
f1f5f92d89 Added tests, cleaned up imports 2013-05-19 14:55:46 +02:00
Nikolaus Schlemm
efca5f6fec use double quotes for docstring instead of single quotes 2013-05-19 14:54:16 +02:00
Nikolaus Schlemm
1154c12b33 don't expose fields for GET and DELETE - leaving room for parameters like e.g. filter or paginate 2013-05-19 11:37:12 +02:00
Nikolaus Schlemm
a91841f7fe WORKAROUND: avoid errors like "AttributeError: 'APIRoot' object has no attribute 'get_serializer'" 2013-05-19 11:29:41 +02:00
Nikolaus Schlemm
c0f3a1c397 Integrated status quo of grimborg's awesome humanize_field() for exposing field metadata via OPTIONS :) 2013-05-19 09:25:02 +02:00
Nikolaus Schlemm
843ae60237 Merge branch 'issue-192-expose-fields-for-options' of git://github.com/grimborg/django-rest-framework into issue-192-expose-fields-for-options
Conflicts:
	rest_framework/tests/fields.py
2013-05-18 18:34:21 +02:00
Oscar Vilaplana
4dffcb5d77 Added humanized field names and types 2013-05-18 18:10:17 +02:00
Nikolaus Schlemm
5ab7cc6e6b HEAD and OPTIONS should not be exposed as actions as discussed in a42afa04c3 (commitcomment-3241476) 2013-05-18 17:38:47 +02:00
Nikolaus Schlemm
b4dbfa9832 only catch relevant exceptions ;) 2013-05-18 17:10:13 +02:00
Nikolaus Schlemm
f8c1481d4b expose the fields metadata via OPTIONS as described in https://github.com/tomchristie/django-rest-framework/issues/192
missing:
 - get fields for method (currently all the same)
 - tests
 - right placement of code
2013-05-18 16:21:25 +02:00
Tom Christie
95abe6e844 Cleanup docstrings 2013-04-25 12:47:34 +01:00
Tom Christie
835d3f89d3 Merge remove-django-generics 2013-04-23 11:59:13 +01:00
Tom Christie
23289b023d Explicit error if dev does not return a response from the view 2013-04-16 14:32:46 +01:00
Tom Christie
c73d0e1e39 Minor cleaning up on View 2013-04-09 18:22:39 +01:00
Tom Christie
f68721ade8 Factor view names/descriptions out of View class 2013-04-04 21:42:26 +01:00
Tom Christie
13b3af0d22 Auth is no longer lazy. Closes #667.
More consistent auth failure behavior.
2013-02-28 17:58:58 +00:00
Tom Christie
4e14b26fa9 Drop unused import 2013-02-28 13:42:08 +00:00
Tom Christie
0c7d6062b2 Py3/2 compat fixes for uncode view names/descriptions 2013-02-22 20:18:16 +00:00
Michael Elovskikh
aa95ccbab7 Fixed UnicodeDecodeError on get_name and get_description methods 2013-02-22 18:50:09 +06:00
Tom Christie
160d10d348 Fix docstring 2013-02-20 08:46:00 +00:00
Tom Christie
c1a40c5899 Drop unused import. 2013-02-15 09:06:05 +00:00
Tom Christie
f5a0275547 Tidy up internal view permission checking logic.
Also document correctly - these methods are now public and will fall
under the deprecation policy from now on.
2013-02-12 08:58:28 +00:00
Tom Christie
09b01887f2 New style object-level permission checks 2013-02-12 08:58:28 +00:00
Marc Tamlyn
bd7977eed7 Purge naked excepts.
Most of these had obvious exceptions which would be thrown. Some I'm not
sure about but they should at least catch only Exception so as not to
ignore SystemExit and other inappropriate Error classes.
2013-02-06 13:05:17 +00:00
Tom Christie
b052c92ac3 Cleanup imports
Mostly adding `from __future__ import unicode_literals` everywhere.
2013-02-04 20:55:35 +00:00
Tom Christie
65b62d64ec WWW-Authenticate responses 2013-01-21 21:29:49 +00:00
Tom Christie
36fa722ebb Merged to latest master 2013-01-07 21:04:52 +00:00
Stephan Groß
44ff2e0add fixed some typos 2012-11-14 19:36:29 +01:00
Tom Christie
873a142af2 Implementing 401 vs 403 responses 2012-11-13 11:27:09 +00:00
Tom Christie
b19c58ae17 Support for HTML error templates. Fixes #319. 2012-11-06 10:44:19 +00:00
Marko Tibold
4d90bb4af4 Fix some typos. 2012-10-30 00:30:52 +01:00
Tom Christie
fed235dd01 Make settings consistent with corrosponding view attributes 2012-10-17 23:09:11 +01:00
Tom Christie
e126b61542 Negotiation API finalized. .select_renderers and .select_parsers 2012-10-17 22:58:18 +01:00
Tom Christie
4231995fbd parser_context includes view, request, args, kwargs. (Not meta and upload_handlers)
Consistency with renderer API.
2012-10-17 22:19:59 +01:00
Tom Christie
99d48f9003 Drop .parse_string_or_stream() - keep API minimal. 2012-10-17 22:07:56 +01:00
Tom Christie
3c8f01b985 Explicit CSRF failure message. Fixes #60. 2012-10-15 14:03:36 +01:00
Tom Christie
9c1fba3483 Tweak parsers to take parser_context 2012-10-15 13:27:50 +01:00
Tom Christie
648d2be29b Make sure JSON output in Browseable API is nicely indented 2012-10-10 12:15:18 +01:00
Tom Christie
ccd2b0117d Permissions and throttles no longer have a view attribute on self. Explicitly passed to .has_permissions(request, view, obj=None) / .allow_request(request, view) 2012-10-10 10:02:37 +01:00
Tom Christie
beea6487b2 Function based views get proper naming in browseable API 2012-10-09 09:57:08 +01:00
Tom Christie
f79ed6175d Add RetrieveDestroyAPIView and remove Metadata mixin 2012-10-08 14:13:15 +01:00
Tom Christie
9d8bce8f5b Remove Parser.can_handle_request() 2012-10-05 14:48:33 +01:00
Tom Christie
3e862c7737 Tweak view slightly 2012-10-05 14:22:02 +01:00
Tom Christie
ed281be3fb User .accepted_renderer, .accepted_media_type 2012-10-05 10:33:44 +01:00
Tom Christie
d07dc77e91 Accepted media type uses most specific of client/renderer media types. 2012-10-05 10:23:47 +01:00
Tom Christie
224bc027cd Add more tests for generic views 2012-09-28 16:41:35 +01:00
Tom Christie
ee36e4ab0c Only display forms when user has permissions. #159 2012-09-27 21:51:46 +01:00
Tom Christie
b4cd699b75 Tweak media_type -> accepted_media_type. Need to document, but marginally less confusing 2012-09-21 13:12:10 +01:00
Tom Christie
d9cba6398e Clean up bits of templates etc 2012-09-20 17:44:34 +01:00
Tom Christie
f4670c8996 Hack out bunch of unneccesary private methods on View class 2012-09-20 14:00:53 +01:00
Tom Christie
4b691c4027 Change package name: djangorestframework -> rest_framework 2012-09-20 13:06:27 +01:00