在Django视图中生成CSV文件时有几个线程,但没有一个真正适合我的情况(并为我工作)。通过Django视图生成CSV
由于我为最终用户创建了一种查询生成器,允许他们选择查询集中包含哪些字段,因此所选字段可能因查询而异,因此我无法到“硬编码”我的表标题等:
我Models.py
class Customers(models.Model):
firstname = models.CharField(max_length=100)
middlename = models.CharField(max_length=100)
lastname = models.CharField(max_length=100)
nickname = models.CharField(max_length=100)
基本上我有1个字典,和2个阵列构建查询集,这个功能就通过我的request.POST。
customers = Customers.objects.all().filter(**filargs).order_by(*ordargs).values(*selargs)
比方说,例如,最终用户只是想选择字段“名字”和“姓氏”,我只是想生成CSV像下面
First Name Last Name
John Johnson
Ted Samson
正如我所看到的从Django文档,你可以用下面的代码创建行
writer.writerow(['First Name','Last Name'])
但是作为查询集被选择的字段可以从查询不同的查询,我需要一个动态WA这样做。我尝试了以下,但似乎没有工作。
writer.writerow(selargs) << selargs being my select field list
在关于写作的实际记录(未字段名),我想这样的事情,但很明显,我得到的输出是不正确的。
for customer in customers:
for value in customer:
writer.writerow(value)
但是,正如你所期望的,这给了我一个单独的行,为每个记录中的每个字段值。是否有某种'write.writecell'或其他类似的东西?
作为帮助将不胜感激。我确信有一个简单的解决方案。
感谢,
什么叫“似乎没有工作”是什么意思? – monkut
它不打印任何东西。 – dlyxzen