When I do something like
I. objects = Model.objects.all()
and then
II. objects.filter(field_1=some_condition)
I hit db every time when on the step 2 with various conditions. Is there any way to get all data in first action and then just take care of the result?
You actually don’t hit the db until you evaluate the qs, queries are
lazy.Read more
here.edit:
After re-reading your question it becomes apparent you were asking how to prevent db hits when filtering for different conditions.
Usually you would want the database to do the filtering for you.
You could force an evaluation of the qs by converting it to a list. This would prevent further db hits, however it would likely be worse than having your db return you results.