在Python中覆盖“截断的剩余元素”

时间:2010-07-14 18:37:23

标签: python django

我在Django中使用Python shell进行一些查询。结果不断被截断。我收到消息,“剩下的元素被截断了。”我怎样才能看到所有结果?或者,我如何将结果写入文件?

3 个答案:

答案 0 :(得分:45)

当您在shell中输出它们时,Queryset会自动执行此操作 - 这会在它们上隐含地调用repr。如果您在查询集上调用list,则会输出所有内容:

list(MyModel.objects.all())

请注意,您不需要在代码中执行此操作,这仅适用于shell中的输出。显然,要注意在具有大量条目的模型上执行此操作。

答案 1 :(得分:1)

说出你的疑问是:

>>> Foo.objects.all()

而是尝试:

>>> for x in Foo.objects.all(): print x

或者将它们转储到文件中:

>>> f = open('your_filename','w')
>>> for x in Foo.objects.all(): f.write(u'%s\n' % x)
>>> f.close() 

答案 2 :(得分:0)

最佳答案在2020年为我返回了一个错误:

Error in argument: '(MyModel.objects.all())'

对我有用的只是遍历Queryset作为列表理解:

[i for i in MyModel.objects.all()]