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):