【发布时间】:2011-08-25 11:11:26
【问题描述】:
我有以下模型(为了这个问题的目的大大简化了):
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)
对于大多数产品,price 将被填写,但 sale_price 不会。所以,我可以像这样按价格订购产品:
Product.objects.order_by('price')
Product.objects.order_by('-price')
但是,有些产品会有 sale_price,我无法找到一种方法来整齐地订购这些产品,以便销售价格与正常价格交织在一起。如果我尝试按两个字段排序:
Product.objects.order_by('sale_price','price')
...然后所有未在售的产品一起出现,然后是所有在售的产品,而不是交错价格。
这有意义吗?有没有人有办法解决这个问题?
谢谢!
【问题讨论】:
标签: django sql-order-by django-orm