From 3ba84f16f831b99fbe43a3249efe189e117fdfab Mon Sep 17 00:00:00 2001 From: Roberto Aguilar Date: Fri, 19 Jul 2013 14:21:48 -0700 Subject: [PATCH] Remove any params that start with an underscore. Any params that have an underscore are resourceful-related and should be removed for query purposes. --- resourceful/tests/test_filtering.py | 9 +++++++++ resourceful/views.py | 3 +++ 2 files changed, 12 insertions(+) diff --git a/resourceful/tests/test_filtering.py b/resourceful/tests/test_filtering.py index 3091fee..15882a5 100644 --- a/resourceful/tests/test_filtering.py +++ b/resourceful/tests/test_filtering.py @@ -23,3 +23,12 @@ def test_attribute_filtering(self): self.assertEqual(1, len(data['items'])) self.assertEqual('item1', data['items'][0]['fields']['name']) + + def test_underscore_param_removal(self): + w1 = Widget.objects.create(name='item1', quantity=10) + w2 = Widget.objects.create(name='item2', quantity=20) + + data = self.get_json('/widget', {'name': 'item1', '_format': 'json'}) + + self.assertEqual(1, len(data['items'])) + self.assertEqual('item1', data['items'][0]['fields']['name']) diff --git a/resourceful/views.py b/resourceful/views.py index 537d580..d7c864b 100644 --- a/resourceful/views.py +++ b/resourceful/views.py @@ -313,6 +313,9 @@ def _get_request_id_params(self): query_params = self.request.REQUEST for key in query_params: + if key.startswith('_'): + continue + if key.endswith('_id'): kwargs[key[:-3]] = query_params[key] else: