Цель состоит в том, чтобы спроектировать ваше приложение так, чтобы набор запросов не оценивался до тех пор, пока ваша функция не применяет последний фильтр.
например,
qs = Entry.objects.filter(...whatever...)
qs = qs.exclude(...whatever...)
qs = qs.filter(...something_else...)
# qs is not evaluated yet
def my_func(some_qs):
return some_qs.filter(is_admin=True)
qs = my_func(qs)
# qs is still not evaluated yet
, если у вас нет выборачем фильтровать уже оцененный набор запросов, то имейте в виду, что вы можете просто обрабатывать его как любую другую итерацию, например, использовать встроенную функцию фильтрации, как в списке:
admins = filter(lambda x: x.is_admin, my_evaluated_qs)