如何循环QuerySet
的所有字段。我需要一个要导出到xlsx文件的所有字段值的列表,但是不能使用client.name
预定义列。
如果对于循环对象,我只得到ID:
for i in Model.objects.all():
print i
如果我尝试嵌套for循环,我会得到TypeError 'Model' object is not iterable
。
for i in Model.objects.all():
for y in i:
print y
答案 0 :(得分:1)
for obj in Model.objects.all():
for field in obj._meta.get_all_field_names():
print getattr(obj, field)
但是,如果你导出到csv / xlsx,我不推荐这样做,因为可能有一些ForeignKey
或ManyToManyField
等字段,所以它是最好明确地为每个领域做。
编辑:
我自己尝试了一下,但您可能需要getattr(obj, field, None)
在一些空的字段上显示None
,例如OneToOneField
。