title: Django query without extra or Raw
body: <p>I want to write a query such as </p>
  
  <pre><code>`Select * from my_table where 'parameter1' LIKE CONCAT("%", col_1, "%") 
  OR 'parameter2' LIKE CONCAT("%", col_1, "%") AND (col_2 IS NULL OR 'parameter3' LIKE CONCAT ("%", col_2, "%") AND (col_3 IS NULL OR col_3='parameter4')`.
  </code></pre>
  
  <p>I have been trying out the following.                 </p>
  
  <pre><code>first_partial_qs = ModelName.extra(where=["%s LIKE CONCAT ('%%', col_1, '%%')"],params=[something1])
  first_final_qs = first_partial_qs | ModelName.extra(where=["%s LIKE CONCAT ('%%', col_1, '%%')"],params=[something2])
  second_qs = ModelName.filter(col_2__isnull=True) | ModelName.extra(where=["%s LIKE CONCAT ('%%', col_2, '%%')"], params=[something3])
  third_qs = ModelName.filter(Q(col_3__isnull=True) | Q(col_3=something4))
  </code></pre>
  
  <p>I want to know how would I do 
      <code>final_qs = first_final_qs AND second_qs AND third_qs</code></p>
  
  <p>But since life is not that simple (for django developers since they will be deprecating <code>extra()</code>, I want to find a way to do it without using <code>extra()</code>. One option would be to use <code>raw()</code> but is there a more Django-ish way of doing this?</p>