boolean logic performed on filter results

* Before, the boolean logic operators were performed against the Q()
objects, iteratively. Now, boolean logic is done after
Host.objects.filter(Q()). This results in the wanted and expected
results.
This commit is contained in:
Chris Meyers
2017-05-12 09:26:11 -04:00
parent 44c1935590
commit b55af095ef
3 changed files with 31 additions and 12 deletions

View File

@@ -1827,8 +1827,8 @@ class HostList(ListCreateAPIView):
qs = super(HostList, self).get_queryset()
filter_string = self.request.query_params.get('host_filter', None)
if filter_string:
filter_q = DynamicFilter.query_from_string(filter_string)
qs = qs.filter(filter_q)
filter_qs = DynamicFilter.query_from_string(filter_string)
qs &= filter_qs
return qs
def list(self, *args, **kwargs):