From 466ecaee3ae77f6a3ed8809ff154fde06a8eaba3 Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Wed, 9 May 2012 17:18:09 -0400 Subject: [PATCH] Searching in the API --- snipts/api.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/snipts/api.py b/snipts/api.py index d0ebf56..3838130 100644 --- a/snipts/api.py +++ b/snipts/api.py @@ -6,6 +6,7 @@ from tastypie.resources import ModelResource from django.contrib.auth.models import User from tastypie.models import create_api_key from snipts.models import Favorite, Snipt +from haystack.query import SearchQuerySet from tastypie.cache import SimpleCache from tastypie.fields import ListField from taggit.models import Tag @@ -91,6 +92,10 @@ class PublicSniptResource(ModelResource): tagged_items = tag.taggit_taggeditem_items.all() orm_filters['pk__in'] = [i.object_id for i in tagged_items] + if 'q' in filters: + sqs = SearchQuerySet().auto_query(filters['q']) + orm_filters['pk__in'] = [i.pk for i in sqs] + return orm_filters @@ -196,6 +201,10 @@ class PrivateSniptResource(ModelResource): tagged_items = tag.taggit_taggeditem_items.all() orm_filters['pk__in'] = [i.object_id for i in tagged_items] + if 'q' in filters: + sqs = SearchQuerySet().auto_query(filters['q']) + orm_filters['pk__in'] = [i.pk for i in sqs] + return orm_filters def apply_authorization_limits(self, request, object_list):