首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自django.db.models.sql.aggregates ImportError:没有名为aggregates的模块

来自django.db.models.sql.aggregates ImportError:没有名为aggregates的模块
EN

Stack Overflow用户
提问于 2018-04-20 21:35:53
回答 3查看 501关注 0票数 0

我一直面临着一个关于聚合的特殊问题。在这段代码中,sumcase类有一个add_to_query方法,用于实例化聚合的SQL实现,并将其设置为一个类变量(aggregate),我将使用它从另一个文件调用默认SQL聚合(django/db.models.sql.aggregates.Aggregate)中的as_sql方法。

我的代码(第一个文件,我如何实现聚合):

代码语言:javascript
复制
from django.db.models.aggregates import Aggregate
from django.db.models.sql.aggregates import Aggregate as SQLAggregate

class SQLsumcase(SQLAggregate):

is_ordinal = True

sql_function = 'SUM'

sql_template = "%(function)s(CASE WHEN %(when)s THEN %(field)s ELSE 0 END)"

def __init__(self, col, **extra):
    if isinstance(extra['when'], basestring):
        extra['when'] = "%s" % extra['when']

    if extra['when'] is None:
        extra['when'] = True

    super(SQLSumCase, self).__init__(col, **extra)


class SumCase(Aggregate):
EN

回答 3

Stack Overflow用户

发布于 2019-04-29 20:09:11

正如我在版本1.11.17中看到的那样,aggregates模块已移至django.db.models

不知道这是不是你遇到的情况,但它可能会有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2018-04-20 22:12:20

django.db.models.sql中没有名为aggregates的模块,Aggregate也不是此sql模块上的类。我认为你应该使用:

from django.db.models.sql import AggregateQuery

票数 0
EN

Stack Overflow用户

发布于 2019-01-25 23:35:35

从1.10版本中删除了django.db.models.sql.aggregates模块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49942914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档