我正在努力开始count
工作ValuesQuerySet
。根据 Django 文档
values = Model.objects.values()
将返回ValuesQuerySet
一个子类QuerySet
Returns a ValuesQuerySet — a QuerySet subclass that returns dictionaries when used as an
iterable, rather than model-instance objects
这意味着所有的方法也QuerySet
应该起作用ValuesQuerySet
。
但是,当我尝试这样做时,我得到了一个例外
values = Model.objects.values()
然后在我的代码中的某个地方
v_size = size_calc(values)
def size_calc(objects)
return objects.count()
File "/home/talha/ws/events.py", line
246, in size_calc
return objects.count()
File "/usr/lib/python2.7/site-packages/django/db/models/query.py", line 336, in count
return self.query.get_count(using=self.db)
File "/usr/lib/python2.7/site-packages/django/db/models/sql/query.py", line 401, in
get_count
number = obj.get_aggregation(using=using)[None]
File "/usr/lib/python2.7/site-packages/django/db/models/sql/query.py", line 367, in
get_aggregation
result = query.get_compiler(using).execute_sql(SINGLE)
File "/usr/lib/python2.7/site-packages/django/db/models/sql/query.py", line 213, in
get_compiler
return connection.ops.compiler(self.compiler)(self, connection, using)
File "/usr/lib/python2.7/site-packages/django/db/backends/__init__.py", line 582, in
compiler
return getattr(self._cache, compiler_name)
AttributeError: 'module' object has no attribute 'SQLAggregateCompiler'
count
正常无缝工作QuerySets
..这可能是后端驱动程序的问题吗?
更新len
:评估后我不能使用,Queryset
因为数据很大,需要在评估前切片。
我正在使用带有 mongodb 后端的 Django。相关包是
django==1.3.0
django-mongodb-engine==0.4.0
djangotoolbox==0.9.2