Skip to content

Commit

Permalink
Merge pull request encode#2 from nschlemm/issue-192-expose-fields-for…
Browse files Browse the repository at this point in the history
…-options

Issue 192 expose fields for options
  • Loading branch information
grimborg committed May 19, 2013
2 parents 08e9e20 + b07cfdc commit 2a00454
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 20 deletions.
42 changes: 22 additions & 20 deletions rest_framework/tests/generics.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,25 +125,25 @@ def test_options_root_view(self):
'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)

Expand Down Expand Up @@ -263,7 +263,9 @@ def test_options_instance_view(self):
'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
Expand Down
7 changes: 7 additions & 0 deletions rest_framework/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,14 @@ def _generate_action_metadata(self, request):
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 = {}
Expand Down

0 comments on commit 2a00454

Please sign in to comment.