Commit Graph

3675 Commits

Author SHA1 Message Date
Jamie Matthews
27935f6f66 Rework generic view class names 2012-10-25 13:50:39 +01:00
Jamie Matthews
d6e10b50fc Re-add implementation of multiple-operation generic views to remove diamond inheritance 2012-10-25 12:26:08 +01:00
Tom Christie
8c360770c1 Add pre_save hook in generic views 2012-10-25 12:15:31 +01:00
Jamie Matthews
16e249d60d Merge branch 'restframework2' into split-generic-views
* restframework2:
  Fix ModelSerializer logic for fields with default value, which should have required=False set
  Added @diviei - Thanks!
  Fix typo reported by @diviei
2012-10-25 11:12:10 +01:00
Tom Christie
3e751ccd8a Fix ModelSerializer logic for fields with default value, which should have required=False set 2012-10-24 20:58:28 +01:00
Jamie Matthews
32ebf96ef6 Split concrete generic views up into separate bits of functionality 2012-10-24 18:22:29 +01:00
Jamie Matthews
607c31c6d8 Move per-field and cross-field validation into a single method 2012-10-24 12:12:27 +01:00
Jamie Matthews
d60d598e02 Clean up internal names and documentation 2012-10-24 11:43:30 +01:00
Jamie Matthews
ac2d39892d Add cross-field validate method 2012-10-24 11:39:17 +01:00
Jamie Matthews
388a807f64 Switch from clean_<fieldname> to validate_<fieldname>, clarify documentation 2012-10-24 11:27:01 +01:00
Jamie Matthews
51fae73f3d Implement per-field validation on Serializers 2012-10-24 09:28:10 +01:00
Tom Christie
5d76f03ac6 Merge pull request #315 from Roarster/emptymanytomany
#314 Fix for manytomany field being required in the payload even though ...
2012-10-22 15:00:56 -07:00
Ian Strachan
c7a0d52fd7 #314 Fix for manytomany field being required in the payload even though the field is specified as readonly in the serializer 2012-10-22 22:24:26 +01:00
Marko Tibold
d1e05ea8d4 Merge commit '95a670de41a246777bc1e448dca8cc576b7b86ea' into BrowsableAPIRenderer
Conflicts:
	rest_framework/renderers.py - manually resolved conflict
2012-10-22 20:09:36 +02:00
Tom Christie
95a670de41 Merge field changes: .default and .widget 2012-10-22 15:24:09 +01:00
Jamie Matthews
45d4622f09 Fix serialization of reverse relationships 2012-10-22 15:12:25 +01:00
Marko Tibold
ab1a12bfec Refactoring BrowsableAPIRenderer 2012-10-21 23:04:12 +02:00
Marko Tibold
c30712a5c8 Remove redundant check if method=='DELETE' 2012-10-21 22:23:54 +02:00
Tom Christie
93f1aa4f69 Remove initial kwarg, add default. 2012-10-21 17:41:05 +01:00
Marko Tibold
71a93930fd Fixing spelling errors. 2012-10-21 16:34:07 +02:00
Tom Christie
efabd2bb1b docs, docs, docs, docs, docs, docs, docs 2012-10-19 19:59:55 +01:00
Tom Christie
a7390fe704 Fix up widget choices 2012-10-19 09:47:01 +01:00
Tom Christie
dab177e29e Drop help_text 2012-10-19 09:20:54 +01:00
Tom Christie
643d3491a6 First pass at pastebin tutorial 2012-10-18 23:48:52 +01:00
Ian Strachan
d70e387f10 Added tests for dotted notation in serializer field source 2012-10-18 23:45:16 +01:00
Tom Christie
c341799344 Apply readonly on RelatedField 2012-10-18 22:19:54 +01:00
Tom Christie
d1746e2f3c Allow callables in dotted notation like Field(source='foo.bar') 2012-10-18 22:03:48 +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
fb56f215ae Added media_type to .parse() - Consistency with renderer API. 2012-10-17 22:39:07 +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
Rob Dobson
38673c35d4 Make default field check safe for boolean values whereby 'False' may be an acceptable default value 2012-10-17 19:12:34 +01:00
Tom Christie
b78872b7db Use two seperate exceptions - AuthenticationFailed, and NotAuthenticated
Cleaner seperation of exception and resulting HTTP response.
Should result in more obvious error messages.
2012-10-17 15:23:36 +01:00
Tom Christie
dc9384f9b4 Use correct status code 2012-10-17 15:09:20 +01:00
Tom Christie
5ae49a4ec4 Add docs for 401 vs 403 responses 2012-10-17 14:59:53 +01:00
Tom Christie
4c17d1441f Add Unauthenticated exception. 2012-10-17 14:59:37 +01:00
eofs
520a183cc6 Typo in class name 2012-10-17 10:41:23 +03:00
Tom Christie
ae680b13da Merge branch 'restframework2' of https://github.com/tomchristie/django-rest-framework into restframework2 2012-10-16 09:20:20 +01:00
Tom Christie
4fe734a91a Merge pull request #296 from ulmus/restframework2
Removed serializers.TextField and related tests
2012-10-15 06:04:55 -07: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
Jens Alm
9f3ff0105a Removed serializer.TextField and related tests 2012-10-15 14:09:29 +02:00
Jens Alm
c942726509 Added docs, integer fields and refactored models.TextField to use CharField
I realized that per the django forms, there is no need for a separate
TextField, an unlimited CharField is perfectly good.
Also added default field for the different IntegerField types
2012-10-15 13:46:44 +02:00
Jens Alm
afbc9684f2 Revert "Support for request-based queryset limits on ListModelMixin"
This reverts commit de4604be0a.
2012-10-15 11:49:56 +02:00
Jens Alm
de4604be0a Support for request-based queryset limits on ListModelMixin
ListModelMixin uses the get_queryset from the MultipleObjectMixin. This
method can be overridden on the View class to return a different
queryset, but get_queryset doesn't accept a request parameter in. This
commit adds the limit_list hook to override if you want to limit the
queryset based on request-information such as the logged in user.
2012-10-15 11:47:56 +02:00
Jens Alm
36cc56bc9d Added tests for TextField 2012-10-15 10:06:50 +02:00
Jens Alm
241be38340 Added TextField to recognized fields 2012-10-15 09:14:01 +02:00
Tom Christie
551c86c43a Documentation for parsers 2012-10-14 22:43:07 +01:00
Tom Christie
7608cf1193 Improve documentation for Requests 2012-10-13 15:07:43 +01:00
Ben Konrath
1d054f9572 Use Decimal (properly) everywhere. 2012-10-11 14:19:29 +02:00
Ben Konrath
6f736a6823 Explicitly use Decimal for creating filter test data.
This fixes a Travis build failures on python 2.6:

https://travis-ci.org/#!/tomchristie/django-rest-framework/builds/2746628
2012-10-11 13:55:16 +02:00
Tom Christie
6300334aca Sanitise JSON error messages 2012-10-11 13:53:12 +02:00
Tom Christie
9094f93d18 Sanitise JSON error messages 2012-10-11 11:21:50 +01:00
Ben Konrath
5454162b04 Define 'page' query field name in one place. 2012-10-11 12:01:07 +02:00
Ben Konrath
6fbd411254 Make query filters work with pagination. 2012-10-11 12:01:07 +02:00
Ben Konrath
e295f616ec Fix small PEP8 problem. 2012-10-11 12:01:07 +02:00
Ben Konrath
692203f933 Check for 200 status when unknown filter requested.
This changes the test from the failing checking for status 400. See
discussion here:

https://github.com/tomchristie/django-rest-framework/pull/169#issuecomment-9240480
2012-10-11 12:01:07 +02:00
Ben Konrath
1e9ece0f93 First attempt at adding filter support.
The filter support uses django-filter to work its magic.
2012-10-11 12:01:07 +02:00
Tom Christie
83f39b3dce Don't fail when no data provided 2012-10-10 16:41:08 +01:00
Tom Christie
221ecd2182 Fix session auth 2012-10-10 16:36:25 +01:00
Tom Christie
d905d1cbd3 Fix yaml rendering 2012-10-10 16:34:00 +01:00
Tom Christie
5c7f3e23ee Tidy up APISettings object to not rely on module state 2012-10-10 12:54:40 +01:00
Tom Christie
db6b5a990b Fix key ordering in json. (sort if it's a sorted dictc representation, or not otherwise) 2012-10-10 12:32:23 +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
900c4b625b api_key -> auth_token to avoid TastyPie conflict 2012-10-10 09:50:15 +01:00
Tom Christie
44281c3996 Remove 'tut 6 - resources' from the docs, since it doesn't exist yet 2012-10-10 09:36:18 +01:00
Tom Christie
a3ab66eca4 Add 'to_many' flag in get_related_field 2012-10-09 17:51:32 +01:00
Tom Christie
9bbc1cc403 Add flag in get_related_field 2012-10-09 17:49:04 +01:00
Tom Christie
97a7f27c82 Rename HTMLTemplateRenderer -> HTMLRenderer, DocuemntingHTMLRenderer -> BrowseableAPIRenderer 2012-10-09 15:58:48 +01:00
Tom Christie
94401b43d2 Flesh out quickstart guide and make some style tweaks 2012-10-09 13:50:26 +01:00
Tom Christie
7c4d50f621 Fix browseable API form display error for authenticated permissions 2012-10-09 12:48:49 +01:00
Tom Christie
115e61be09 Added quickstart guide 2012-10-09 12:01:17 +01:00
Tom Christie
dc52ceaaa2 Remove Field handling relations/relationship managers - use RelatedField/ManyRelatedField instead 2012-10-09 10:25:01 +01:00
Tom Christie
5c17a60176 Tweak authtoken 2012-10-09 09:57:31 +01:00
Tom Christie
beea6487b2 Function based views get proper naming in browseable API 2012-10-09 09:57:08 +01:00
Tom Christie
65f592866c Fix issue where required fields were not being properly validated. Also make model fields with a default value be not required 2012-10-08 17:53:18 +01:00
Tom Christie
4a21b3557e Fix fiddly content-overloading bug 2012-10-08 17:10:50 +01:00
Tom Christie
f79ed6175d Add RetrieveDestroyAPIView and remove Metadata mixin 2012-10-08 14:13:15 +01:00
Tom Christie
52ba2e3333 Fix #285 2012-10-08 12:52:56 +01:00
Tom Christie
f4d4d54e03 Adding migration and changelog docs 2012-10-08 12:17:43 +01:00
Tom Christie
0b08d25297 Merge branch 'restframework2' of https://github.com/tomchristie/django-rest-framework into restframework2 2012-10-05 19:26:45 +01:00
Tom Christie
33ac2fd959 Remove unused test file 2012-10-05 17:07:25 +01:00
Tom Christie
4e7fffa993 Merge pull request #284 from maximilianhurl/doc-styles
Added sticky footer and styles to HTML API page
2012-10-05 09:04:17 -07:00
Tom Christie
cc21948a69 Fix django 1.3 bug 2012-10-05 17:02:33 +01:00
Max Hurl
101f06b50b Added dabapps styling to html api 2012-10-05 17:00:24 +01:00
Tom Christie
2533c2452b Support PUT for create 2012-10-05 16:24:52 +01:00
Tom Christie
7218bcbade Add test for non-GET methods to api_view decorator 2012-10-05 15:55:45 +01:00
Tom Christie
2a89cb4fb7 Fix view_name argument to HyperlinkedIdentityField 2012-10-05 15:47:34 +01:00
Tom Christie
102e906840 Fix view_name argument to HyperlinkedIdentityField 2012-10-05 15:46:45 +01:00
Tom Christie
484ee8cc27 Add view_name argument to HyperlinkedIdentityField 2012-10-05 15:44:08 +01:00
Tom Christie
3e77090b21 Fix bug in format suffix patterns 2012-10-05 15:38:12 +01:00
Tom Christie
272fddc952 Fix bug in format suffix patterns 2012-10-05 15:37:50 +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
2575ea92aa Docs for template responses 2012-10-05 13:04:34 +01:00
Tom Christie
26c7d6df6c HTMLTemplateRenderer working 2012-10-05 12:13:44 +01:00
Tom Christie
4af7fb96f7 Tidy up renderers slightly 2012-10-05 11:12:52 +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
693892ed01 Fix for field to make it easier to access field relationships 2012-10-04 22:07:24 +01:00
Tom Christie
cc0d2601b8 Minor fixes 2012-10-04 21:36:40 +01:00
Tom Christie
c91d926b06 Initial tests for hyperlinked relationships 2012-10-04 16:58:18 +01:00
Tom Christie
55e9cbecac Tweaks 2012-10-04 15:01:44 +01:00
Tom Christie
aac6b6cf4e Tweak comment 2012-10-04 15:00:23 +01:00
Tom Christie
eaebb397fa Make Import patterns 1.3 compatible 2012-10-04 13:58:28 +01:00
Tom Christie
3a06dde884 Clean up field classes 2012-10-04 13:28:14 +01:00
Tom Christie
d89d6887d2 HyperlinkedModelSerializer with working HyperlinkedIdentityField, but no hyperlinked relations 2012-10-04 11:26:41 +01:00
Tom Christie
d79e18963e Tests for default arguments on fields 2012-10-04 09:29:12 +01:00
Tom Christie
f8edfa2675 Abstract out the app_label on test models 2012-10-04 09:19:10 +01:00
Tom Christie
bcd2caf559 Abstract out the app_label on test models 2012-10-04 09:18:46 +01:00
Tom Christie
a02707e12f Tweaks 2012-10-03 21:08:32 +01:00
Tom Christie
92b091ea16 Tweak styling of browseable API 2012-10-03 16:19:07 +01:00
Tom Christie
a366d6e612 M2M fields supported 2012-10-03 16:08:20 +01:00
Tom Christie
09f2267601 Improve comments 2012-10-03 15:39:03 +01:00
Tom Christie
27c93c08d2 Fix for empty form fields 2012-10-03 12:56:01 +01:00
Tom Christie
f4ad77ac04 Fix for empty form fields 2012-10-03 12:55:53 +01:00
Tom Christie
58c1263267 Use either PrimaryKeyRelatedField or ManyPrimaryKeyRelatedField as appropriate (fixes test) 2012-10-03 12:16:30 +01:00
Tom Christie
cab3b2f3f8 Split out PrimaryKeyRelatedField and ManyPrimaryKeyRelatedField 2012-10-03 12:07:34 +01:00
Tom Christie
f1f7f5d4e3 Added failing test for m2m data 2012-10-03 11:50:08 +01:00
Tom Christie
89ec0b2750 Add m2m update test 2012-10-03 11:14:47 +01:00
Tom Christie
7c303411a9 Add Serializer.save() to clean up differences between serializer.object being either a DeserializedObject or a model instance 2012-10-03 11:08:02 +01:00
Tom Christie
36b58d0c78 Many2Many test 2012-10-03 10:51:38 +01:00
Tom Christie
d8b05201ed Merge branch 'restframework2' of https://github.com/tomchristie/django-rest-framework into restframework2 2012-10-03 09:46:12 +01:00
Tom Christie
1a05942166 Stopgap fix for model fields rendering in browseable API 2012-10-03 09:45:27 +01:00
Tom Christie
c30e0795be Rename generic views 2012-10-03 09:26:15 +01:00
Tom Christie
b89125ef53 Update view docs slightly 2012-10-02 21:26:15 +01:00
Tom Christie
d1b99f350a Added model form field -> serializer form field mapping 2012-10-02 16:16:49 +01:00
Tom Christie
f010a9553e Add test to ensure that pk is readonly in PUT requests 2012-10-02 15:39:41 +01:00
Tom Christie
ab173fd8f9 Fix bug where pk could be set in post data 2012-10-02 15:37:13 +01:00
Tom Christie
e7685f3eb5 URL overrides in settings fixed up slightly 2012-10-02 15:24:42 +01:00
Tom Christie
ae8a827004 Make 'results_field' attribute of BasePaginationSerializer public. 2012-10-02 10:40:43 +01:00
Tom Christie
b16fb57771 Expand pagination support, add docs 2012-10-01 15:49:19 +01:00
Tom Christie
6fa589fefd Pagination support 2012-09-30 17:31:28 +01:00
Tom Christie
43d3634e89 Docs tweaking 2012-09-30 15:55:24 +01:00
Tom Christie
616e6f5f4d Drop oauth tests for now - may pull same test module back in if end up using django-oauth-plus, but since we've not pulled it in right now... 2012-09-28 17:09:30 +01:00
Tom Christie
224bc027cd Add more tests for generic views 2012-09-28 16:41:35 +01:00
Tom Christie
0853316545 Add more tests for generic views 2012-09-28 16:23:46 +01:00
Tom Christie
6cf2874cf2 Clean up reverse tests 2012-09-28 16:09:52 +01:00
Tom Christie
c2bbe628e6 Fix coverage to not include migrations 2012-09-28 16:01:02 +01:00
Tom Christie
9f71f8e618 Fix broken bits of generic views 2012-09-28 15:54:00 +01:00
Tom Christie
4ebd701be7 Fix serialization issue with Django 1.3 2012-09-28 14:53:22 +01:00
Tom Christie
25cbff5fab Remove unused test file 2012-09-28 14:29:20 +01:00
Tom Christie
e003cc91b6 Get test-only models properly working 2012-09-28 14:28:50 +01:00
Tom Christie
84f7758039 Remove support for doctests 2012-09-28 11:53:51 +01:00
Tom Christie
62ccc1a306 Fix failing tests 2012-09-28 10:11:12 +01:00
Tom Christie
ee36e4ab0c Only display forms when user has permissions. #159 2012-09-27 21:51:46 +01:00
Tom Christie
284a700e09 head method on views for Django 1.3. Fixes #228 2012-09-27 13:34:28 +01:00
Tom Christie
d2583b809c Remove parse_qs from compat, now py2.5 support is dropped 2012-09-27 13:08:57 +01:00
Tom Christie
91b3fb0b05 Remove RequestFactory from compat (Now 1.2 is not supported) 2012-09-27 13:06:04 +01:00
Tom Christie
fe666a14ee Add test for request.POST 2012-09-27 12:50:18 +01:00
Tom Christie
3bae2867e9 Remove braindead test 2012-09-27 12:49:33 +01:00
Tom Christie
0cc7030aab Fix @api_view decorator tests 2012-09-26 21:47:19 +01:00
Tom Christie
622e001e0b Merge pull request #261 from j4mie/improved-view-decorators
First stab at new function-based view decorators
2012-09-26 13:10:01 -07:00
Jamie Matthews
686a034817 No need to use setattr 2012-09-26 20:18:57 +01:00
Tom Christie
d3e0ac864f Fix broken import 2012-09-26 21:15:24 +02:00
Jamie Matthews
c13c8fe5bc Update to new rest_framework package name, simplify implementation 2012-09-26 13:52:29 +01:00
Jamie Matthews
4be937a9b3 Merge branch 'restframework2' of git://github.com/tomchristie/django-rest-framework into improved-view-decorators
* 'restframework2' of git://github.com/tomchristie/django-rest-framework:
  Add missing comma
2012-09-26 13:09:39 +01:00
Tom Christie
ffe2c6d558 Add missing comma 2012-09-26 13:09:20 +01:00
Jamie Matthews
01770c53cd Merge branch 'restframework2' of git://github.com/tomchristie/django-rest-framework into improved-view-decorators
* 'restframework2' of git://github.com/tomchristie/django-rest-framework: (56 commits)
  Bits of cleanup
  Add request.QUERY_PARAMS
  Add readonly 'id' field
  Tweak browseable API
  Don't display readonly fields
  Fix some bits of serialization
  Add csrf note
  Fix incorrect bit of tutorial
  Added tox.ini
  Tweak media_type -> accepted_media_type.  Need to document, but marginally less confusing
  Tweak media_type -> accepted_media_type.  Need to document, but marginally less confusing
  Tweak media_type -> accepted_media_type.  Need to document, but marginally less confusing
  Clean up bits of templates etc
  Hack out bunch of unneccesary private methods on View class
  Clean up template tags
  Remove dumbass __all__ variables
  Remove old 'djangorestframework directories
  Change package name: djangorestframework -> rest_framework
  Dont strip final '/'
  Use get_script_prefix to play nicely if not installed at the root.
  ...

Conflicts:
	rest_framework/decorators.py
2012-09-26 13:05:21 +01:00
Tom Christie
09a445b257 Bits of cleanup 2012-09-26 12:40:11 +01:00
Tom Christie
728e92f06a Add request.QUERY_PARAMS 2012-09-26 12:39:39 +01:00
Tom Christie
758bcf5b1e Tweak browseable API 2012-09-25 13:35:41 +01:00
Tom Christie
b7b7ca5af9 Don't display readonly fields 2012-09-25 13:35:28 +01:00
Tom Christie
e0913e29b8 Fix some bits of serialization 2012-09-25 13:20:12 +01:00
Tom Christie
064e1ba91f Tweak media_type -> accepted_media_type. Need to document, but marginally less confusing 2012-09-21 13:16:08 +01:00
Tom Christie
3f7371c796 Tweak media_type -> accepted_media_type. Need to document, but marginally less confusing 2012-09-21 13:15:31 +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
5a82aa9726 Clean up template tags 2012-09-20 13:42:46 +01:00
Tom Christie
7efc6e8205 Remove dumbass __all__ variables 2012-09-20 13:22:07 +01:00
Tom Christie
87dae4d854 Remove old 'djangorestframework directories 2012-09-20 13:19:43 +01:00
Tom Christie
4b691c4027 Change package name: djangorestframework -> rest_framework 2012-09-20 13:06:27 +01:00