2015-11-12 162 views
0

如何循环遍历QuerySet的所有字段。我需要将所有字段值的列表导出到xlsx文件,但不能使用client.name来预定义列。遍历模型列

如果循环对象,我刚拿到ID:

for i in Model.objects.all(): 
    print i 

如果我试图巢循环,我得到TypeError 'Model' object is not iterable。如果导出为CSV/XLSX

for i in Model.objects.all(): 
     for y in i: 
      print y 

回答

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

不过,我不会建议这样做,因为可能有一些领域是ForeignKeyManyToManyField等,所以最好为每个做明确领域。

编辑:

我只是尝试过自己,但你可能需要getattr(obj, field, None)上显示一些是空的字段None,像OneToOneField