title: Django order items by two fields, but ignoring them if they're zero
body: <p>I have the following model (greatly simplified for the purposes of this question):</p>
  
  <pre><code>class Product(models.Model):
      price = models.DecimalField(max_digits=8, decimal_places=2)
      sale_price = models.DecimalField(max_digits=10, blank=True, null=True, decimal_places=2)
  </code></pre>
  
  <p>For the majority of products, price will be filled but sale_price will not be. So, I can order products by price like so:</p>
  
  <pre><code>Product.objects.order_by('price')
  Product.objects.order_by('-price')
  </code></pre>
  
  <p>However, some products will have a sale_price, and I can't find a way to order these neatly so that the sale price interleaves with the normal price. If I try ordering by both fields:</p>
  
  <pre><code>Product.objects.order_by('sale_price','price')
  </code></pre>
  
  <p>...then all the products that aren't on sale appear together, followed by all that are, instead of interleaving the prices.</p>
  
  <p>Does this make sense? Does anyone have a way to solve this?</p>
  
  <p>Thanks!</p>