From 856d2d1e87e451ea4080d1c4510dc215d10f04d3 Mon Sep 17 00:00:00 2001 From: Krzysztof Klimonda Date: Sun, 3 Mar 2013 14:50:40 -0800 Subject: [PATCH] Allow filtering pins over submitter.username --- pinry/core/api.py | 7 +++++++ pinry/core/tests/api.py | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/pinry/core/api.py b/pinry/core/api.py index 2101ca6..0088aba 100644 --- a/pinry/core/api.py +++ b/pinry/core/api.py @@ -1,5 +1,6 @@ from tastypie import fields from tastypie.authorization import DjangoAuthorization +from tastypie.constants import ALL, ALL_WITH_RELATIONS from tastypie.exceptions import Unauthorized from tastypie.resources import ModelResource from django_images.models import Thumbnail @@ -47,6 +48,9 @@ class UserResource(ModelResource): class Meta: list_allowed_methods = ['get'] + filtering = { + 'username': ALL + } queryset = User.objects.all() resource_name = 'user' fields = ['username'] @@ -114,6 +118,9 @@ class PinResource(ModelResource): class Meta: fields = ['id', 'url', 'origin', 'description'] ordering = ['id'] + filtering = { + 'submitter': ALL_WITH_RELATIONS + } queryset = Pin.objects.all() resource_name = 'pin' include_resource_uri = False diff --git a/pinry/core/tests/api.py b/pinry/core/tests/api.py index 8bdea69..0900314 100644 --- a/pinry/core/tests/api.py +++ b/pinry/core/tests/api.py @@ -200,12 +200,17 @@ class PinResourceTest(ResourceTestCase): self.assertValidJSONResponse(response) self.assertEqual(self.deserialize(response)['objects'][0]['id'], pin.id) - def test_get_list_json_filtered(self): + def test_get_list_json_filtered_by_tags(self): tag = self.pin_1.tags.all()[0] response = self.api_client.get('/api/v1/pin/', format='json', data={'tag': tag}) self.assertValidJSONResponse(response) self.assertEqual(self.deserialize(response)['objects'][0]['id'], self.pin_1.id) + def test_get_list_json_filtered_by_submitter(self): + response = self.api_client.get('/api/v1/pin/', format='json', data={'submitter__username': self.user.username}) + self.assertValidJSONResponse(response) + self.assertEqual(self.deserialize(response)['objects'][0]['id'], self.pin_1.id) + def test_get_list_json(self): user = User.objects.get(pk=1) image = Image.objects.get(pk=1)