【发布时间】:2018-04-01 08:57:57
【问题描述】:
我想请求一起超过特定数量的前 x 个元素,我不知道这是否可能。 所以假设这是我的模型:
class Article(models.Model):
price = models.DecimalField(default=0.0, max_digits=7, decimal_places=2)
现在,如果我通过price 订购Articles,我想要第一个Articles,它们加起来超过price,比如说100 美元。
这是否可以通过注释、求和、extra() 或其他方式实现?
Article.objects.order_by("price")
例如: 我有 3 篇文章:
Article1 (price=50 Dollar)
Article2 (price=60 Dollar)
Article3 (price=20 Dollar)
....现在我想要价格超过 100 美元的文章...所以这将是 Article1 和 Article2。加起来价值 110 美元
原始 sql 语句中的这个答案会欺骗他,但我不知道如何用 django 语法解决这个问题 limiting the rows to where the sum a column equals a certain value in MySQL
【问题讨论】:
-
前x个元素怎么说?先创建?
-
假设我有 3 篇文章:文章 1(价格=50 美元)文章 2(价格=60 美元)和文章 3(价格=20 美元)....现在我想要这些文章一起超过 100 美元的价格...所以这将是第 1 条和第 2 条。加起来价值 110 美元
-
如果不使用 forloop,我什么都想不出来。
-
我在原始 sql 中找到了答案:stackoverflow.com/questions/14890486/… 但是这如何使用 Django 语法? :)
标签: sql django django-queryset