【问题标题】:Evaluating Django Chained QuerySets Locally在本地评估 Django 链式查询集
【发布时间】:2010-03-29 21:23:22
【问题描述】:

我希望有人能帮我解答一个关于链接 Django 查询集的快速问题。我注意到速度变慢了,因为我正在评估数据库中的许多数据点以创建数据趋势。我想知道是否有一种方法可以在本地评估链式过滤器而不是访问数据库。这是一个(粗略的)示例:

pastries = Bakery.objects.filter(productType='pastry') # <--- will obviously always hit DB, when evaluated
cannoli = pastries.filter(specificType='cannoli') # <--- can this be evaluated locally instead of hitting the DB when evaluated, as long as pastries was evaluated?

我已经检查了文档,但没有看到任何具体说明,所以我想这是不可能的,但我想先与“智囊团”核实 ;-)。

顺便说一句 - 我知道我可以通过实施一些方法来循环这些数据点并评估标准来自己做到这一点,但是数据点太多,我的截止日期不允许我手动实施。

提前致谢。

【问题讨论】:

    标签: django django-queryset


    【解决方案1】:

    QuerySet 方法总是生成返回所需表达式的 SQL。这就是为什么你不能例如切片后调用各种方法; SQL 不支持该语法。 ORM 只不过是组装所说的 SQL。如果你想要更高级的处理,那么你需要自己在 Python 代码中执行它。

    【讨论】:

    • 谢谢,不是我所希望的,而是我所期望的:-(
    猜你喜欢
    • 1970-01-01
    • 2011-07-18
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 2017-04-03
    • 1970-01-01
    • 2018-06-05
    相关资源
    最近更新 更多