迭代模型列

时间:2015-11-12 13:54:40

标签: python django

如何循环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

1 个答案:

答案 0 :(得分:1)

for obj in Model.objects.all():
    for field in obj._meta.get_all_field_names():
        print getattr(obj, field)

但是,如果你导出到csv / xlsx,我不推荐这样做,因为可能有一些ForeignKeyManyToManyField等字段,所以它是最好明确地为每个领域做。

编辑:

我自己尝试了一下,但您可能需要getattr(obj, field, None)在一些空的字段上显示None,例如OneToOneField