To query/limit choices, goto site-packages/smart-selects/views.py
and change the following:

def filterchain(request, app, model, field, foreign_key_app_name, foreign_key_model_name,
foreign_key_field_name, value, manager=None):
model_class = get_model(app, model)
m2m = is_m2m(model_class, field)
keywords = get_keywords(field, value, m2m=m2m)
# filter queryset using limit_choices_to
limit_choices_to = get_limit_choices_to(foreign_key_app_name, foreign_key_model_name, foreign_key_field_name)
—————————————-
+ # blnd
+ if foreign_key_field_name == ‘THE_FILED‘:
+     limit_choices_to = {YOUR_QUERY_SET}
—————————————-
queryset = get_queryset(model_class, manager, limit_choices_to=limit_choices_to)

results = queryset.filter(**keywords)

# Sort results if model doesn’t include a default ordering.
if not getattr(model_class._meta, ‘ordering’, False):
results = list(results)
sort_results(results)

serialized_results = serialize_results(results)
results_json = json.dumps(serialized_results)
return HttpResponse(results_json, content_type=’application/json’)