code: def _filters_to_query(self, includes, excludes, serializer, q=None):
          
  
          def rewrite_filters(filters, serializer):
              out = {}
              for k, node in six.iteritems(filters):
                  filter_key, field = node.generate_query_key(serializer)
                  if isinstance(field, (BooleanField, NullBooleanField)):
                      node.value = is_truthy(node.value)
                  out[filter_key] = node.value
  
              return out
  
          q = q or Q()
  
          if not includes and not excludes:
              return None
  
          if includes:
              includes = rewrite_filters(includes, serializer)
              q &= Q(**includes)
          if excludes:
              excludes = rewrite_filters(excludes, serializer)
              for k, v in six.iteritems(excludes):
                  q &= ~Q(**{k: v})
          return q
docs: Construct Django Query object from request.
          Arguments are dictionaries, which will be passed to Q() as kwargs.
  
          e.g.
              includes = { 'foo' : 'bar', 'baz__in' : [1, 2] }
            produces:
              Q(foo='bar', baz__in=[1, 2])
  
          Arguments:
            includes: TreeMap representing inclusion filters.
            excludes: TreeMap representing exclusion filters.
            serializer: serializer instance of top-level object
            q: Q() object (optional)
  
          Returns:
            Q() instance or None if no inclusion or exclusion filters
            were specified.