У меня есть следующая модель (очень упрощенная для целей этого вопроса):
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')
... тогда все продукты, которые не продаются, появляются вместе, за ними следуют все, что есть, вместо того, чтобы чередовать цены.
Это имеет смысл? У кого-нибудь есть способ решить это?Спасибо!