在Python中覆盖“剩余元素被截断”
我在Django的Python命令行里做一些查询,但是结果总是被截断了。我看到提示信息说“剩余元素被截断”。我该怎么才能看到所有的结果呢?或者,我怎么才能把结果写到一个文件里呢?
3 个回答
2
假设你的查询是:
>>> 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()
3
这个最上面的回答在2020年对我来说是有错误的:
Error in argument: '(MyModel.objects.all())'
对我有效的方法是把查询结果当成一个列表来遍历:
[i for i in MyModel.objects.all()]
67
当你在命令行中直接输出查询集时,它会自动处理这些内容,这个过程实际上是调用了repr
这个函数。如果你用list
来处理查询集,那它就会把所有的内容都输出出来:
list(MyModel.objects.all())
需要注意的是,你在代码中不需要这样做,这只是为了在命令行中显示结果。当然,如果你的模型有很多条记录,使用这种方式要小心。