Merge pull request #2 from nschlemm/issue-192-expose-fields-for-options

Issue 192 expose fields for options
This commit is contained in:
Òscar Vilaplana 2013-05-19 05:00:01 -07:00
commit 2a00454517
2 changed files with 29 additions and 20 deletions

View File

@ -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

View File

@ -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 = {}