Django queryset:不能同时进行F()和计数

时间:2013-08-29 04:06:20

标签: python django django-models

我很难理解这是否是Django 1.5.2及更早版本中的错误(最有可能),或者我做错了。 我写了一个查询集,它使用F()上的DateTimeField表达式。这很好用。但是,如果我在此查询集上调用count(),则会收到包含此消息的ValueError

ctypes objects containing pointers cannot be pickled

我的查询看起来像这样(在模型管理器的方法中)

results = self.filter(user=user, topic__isnull=False, date__gte=F('topic__updated')).count()

您是否在此类查询中看到了同样的错误? 修改:例如,将count替换为values_list也是一个错误。

1 个答案:

答案 0 :(得分:0)

实际上,我没有做错任何事。这是Django中的一个错误,与克隆查询集时deepcopy过多的数据有关。这已经在Django 1.6中得到修复。 (修复也会稍微提高性能)