aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorÒscar Vilaplana2013-05-19 05:00:01 -0700
committerÒscar Vilaplana2013-05-19 05:00:01 -0700
commit2a004545173bb24bea83845186b79c710d9a8d01 (patch)
treee2468650b21d5e151cabab21c56995291394caa2 /rest_framework
parent08e9e2042c99cde66721a22475df6e084a06e3d2 (diff)
parentb07cfdcf54961dc44604c6b87e2cc339901038a3 (diff)
downloaddjango-rest-framework-2a004545173bb24bea83845186b79c710d9a8d01.tar.bz2
Merge pull request #2 from nschlemm/issue-192-expose-fields-for-options
Issue 192 expose fields for options
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/tests/generics.py42
-rw-r--r--rest_framework/views.py7
2 files changed, 29 insertions, 20 deletions
diff --git a/rest_framework/tests/generics.py b/rest_framework/tests/generics.py
index 293c6633..2cbb55e6 100644
--- a/rest_framework/tests/generics.py
+++ b/rest_framework/tests/generics.py
@@ -125,25 +125,25 @@ class TestRootView(TestCase):
'actions': {}
}
# TODO: this is just a draft for fields' metadata - needs review and decision
- for method in ('GET', 'POST',):
- expected['actions'][method] = {
- 'text': {
- # TODO add help_text and label when they are available
- #'help_text': '',
- #'label': None,
- 'read_only': False,
- 'required': True,
- 'type': 'Single Character',
- },
- 'id': {
- # TODO add help_text and label when they are available
- #'help_text': '',
- #'label': None,
- 'read_only': True,
- 'required': False,
- 'type': 'Integer',
- },
- }
+ expected['actions']['GET'] = {}
+ expected['actions']['POST'] = {
+ 'text': {
+ # TODO add help_text and label when they are available
+ #'help_text': '',
+ #'label': None,
+ 'read_only': False,
+ 'required': True,
+ 'type': 'Single Character',
+ },
+ 'id': {
+ # TODO add help_text and label when they are available
+ #'help_text': '',
+ #'label': None,
+ 'read_only': True,
+ 'required': False,
+ 'type': 'Integer',
+ },
+ }
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data, expected)
@@ -263,7 +263,9 @@ class TestInstanceView(TestCase):
'actions': {}
}
# TODO: this is just a draft idea for fields' metadata - needs review and decision
- for method in ('GET', 'PATCH', 'PUT', 'DELETE'):
+ for method in ('GET', 'DELETE'):
+ expected['actions'][method] = {}
+ for method in ('PATCH', 'PUT'):
expected['actions'][method] = {
'text': {
# TODO uncomment label and description when they are
diff --git a/rest_framework/views.py b/rest_framework/views.py
index e8bd9f50..c9d55c18 100644
--- a/rest_framework/views.py
+++ b/rest_framework/views.py
@@ -79,7 +79,14 @@ class APIView(View):
try:
self.check_permissions(cloned_request)
+ # TODO: discuss whether and how to expose parameters like e.g. filter or paginate
+ if method in ('GET', 'DELETE'):
+ actions[method] = {}
+ continue
+
# TODO: find right placement - APIView does not have get_serializer
+ if not hasattr(self, 'get_serializer'):
+ continue
serializer = self.get_serializer()
if serializer is not None:
field_name_types = {}