title: Trying to reduce Django Q objects with operator.or_ seems to result in reduction with 'AND'
body: <p>I am working on an application in Python/Django. I am trying to make a filter by reducing a list of Q objects with Python's operator.or_ function.
  Unfortunately it results in a list that is combined with an <code>AND</code> rather than <code>operator.or_</code>.
  The problem occurs in the following code:</p>
  
  <pre><code>print 'operator.or_', operator.or_
  filter = reduce(operator.or_, q_objects[key])
  print key, '-&gt;', filter
  </code></pre>
  
  <p>The statement</p>
  
  <pre><code>print 'operator.or_', operator.or_
  </code></pre>
  
  <p>results in </p>
  
  <pre><code>operator.or_ &lt;built-in function or_&gt;
  </code></pre>
  
  <p>so that seems succesful.
  However, </p>
  
  <pre><code>filter = reduce(operator.or_, q_objects[key])
  print key, '-&gt;', filter    
  </code></pre>
  
  <p>results in (with added formatting)</p>
  
  <pre><code>some_key -&gt; (
          AND: 
          ('some_field__icontains', u'search string 1'), 
          ('other_field__icontains', u'search string 2')
      )
  </code></pre>
  
  <p>As you can see, the result has an <code>AND</code> rather than an <code>OR</code>.
  Can anyone see what I am doing wrong?</p>
  
  <p>Regarding <code>q_objects[key]</code>, it is created as follows:</p>
  
  <pre><code>q_dict = {'some_field__icontains': u'search string 1', 'other_field__icontains': u'search string 2'}
  q_objects[key] = [Q(**q_dict)]
  </code></pre>