At one point there was a (now fixed) bug in django-sphinx where filters from previous queries weren't being cleared, which meant I had to do full search without any filters and then intersect with normal filters. This is how I did it:
# First get list of objects matching criteria
results = Object.objects.filter(qset).distinct()
# Save id's from mysql queryset for later
qs_ids = [object.id for object in results]
# Do sphinx query
search_results = Object.search.query(search_terms)
# Now manually filter the sphinx queryset
results = [object for object in search_results if object.id in qs_ids]
return results
This isn't as efficient as letting sphinx do the filtering of course, but I didn't have a choice at the time.
Maybe you can re-think your strategy so you don't need to manually filter the query yourself?