From 0b1e6802936134261f7a34f0462da9e29e6fed1b Mon Sep 17 00:00:00 2001 From: Konstantinos Koukopoulos Date: Thu, 5 Feb 2015 15:51:27 +0200 Subject: [PATCH] support queries when django-filter classes are used --- rest_framework_cj/renderers.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/rest_framework_cj/renderers.py b/rest_framework_cj/renderers.py index 9b07d65..f02f259 100644 --- a/rest_framework_cj/renderers.py +++ b/rest_framework_cj/renderers.py @@ -145,6 +145,31 @@ def _transform_data(self, request, response, view, data): else: collection.update(self._get_items_and_links(view, data)) + if hasattr(view, 'filter_class'): + href = request.build_absolute_uri(request.path) + fields = [] + labels = [] + model = getattr(view, 'model', + getattr(view.queryset, 'model')) + for f, obj in view.filter_class().filters.items(): + fields.append({ + "name": f, + "value": "" + }) + labels.append(getattr(obj, 'label') or f) + prompt = 'filter {} on {}'.format( + model._meta.verbose_name_plural.title(), + ", ".join(labels)) + collection.update({ + 'queries': [ + { + 'href': href, + 'rel': 'search', + 'prompt': prompt, + 'data': fields + }] + }) + return {'collection': collection} def get_href(self, request):