可能重复:
django - ordering queryset by a calculated field
我希望有类似这样的东西:
但是不幸的是它不起作用,我也在使用annotate时失败了。我该如何执行QuerySet排序,以使两个模型字段的值乘积成为结果?
django - ordering queryset by a calculated field
如何使用order_by像order_by('field1'*'field2')一样 例如,我有以不同货币列出价格的项目,所以要订购项目-我必须进行货币转换。
class Currency(models.Model):
code = models.CharField(max_length=3, primary_key=True)
rateToUSD = models.DecimalField(max_digits=20,decimal_places=10)
class Item(models.Model):
priceRT = models.DecimalField(max_digits=15, decimal_places=2, default=0)
cur = models.ForeignKey(Currency)
我希望有类似这样的东西:
Item.objects.all().order_by(F('priceRT')*F('cur__rateToUSD'))
但是不幸的是它不起作用,我也在使用annotate时失败了。我该如何执行QuerySet排序,以使两个模型字段的值乘积成为结果?