我在Django中使用Python shell进行一些查询。结果不断被截断。我收到消息,“剩下的元素被截断了。”我怎样才能看到所有结果?或者,我如何将结果写入文件?
答案 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()]