2014-05-23 61 views
0

我想打印QuerySet以进行调试。它的动态构造是这样的:如何打印mongoengine的QuerySet的内容

qs = self.model.objects 
orm_lookups = [self.construct_search(str(search_field)) for search_field in self.search_fields] 
for bit in search_query.split(): 
    or_queries = [Q(**{orm_lookup: bit}) for orm_lookup in orm_lookups] 
    qs = qs.filter(reduce(operator.or_, or_queries)) 

有一个名为to_json方法但不幸的是它返回空列表。有什么办法可以获得与查询集相当的可读性吗?

回答

2

您可以使用as_pymongo()。

这会给你一个你可以打印的字典列表。

qs = qs.filter(reduce(operator.or_, or_queries)).as_pymongo() 
print qs 

只是一个指针等你应该考虑的是,也许你的查询是不实际返回任何结果,如果to_json()将返回一个空的字典。

+0

这正是我想调试我的查询的原因。由于它是以编程方式构建的,因此在查询中想象结果有点困难。 – Kentzo