У меня есть следующая модель (значительно упрощенная для целей этого вопроса):
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)
Для большинства продуктов цена будет заполнена, а sale_price - нет.Таким образом, я могу заказать товары по цене, например, так:
Product.objects.order_by('price')
Product.objects.order_by('-price')
Однако у некоторых товаров есть sale_price, и я не могу найти способ их аккуратно заказать, чтобы цена продажи пересекалась с обычнойцена.Если я попробую упорядочить по обоим полям:
Product.objects.order_by('sale_price','price')
... тогда все продукты, которые не продаются, появляются вместе, а затем идут все, что есть, вместо чередования цен.
Имеет ли это смысл?У кого-нибудь есть способ решить эту проблему?
Спасибо!