我很难理解这是否是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
也是一个错误。
答案 0 :(得分:0)
实际上,我没有做错任何事。这是Django中的一个错误,与克隆查询集时deepcopy
过多的数据有关。这已经在Django 1.6中得到修复。 (修复也会稍微提高性能)