Django csv下载性能问题



Ok,所以我从数据生成CSV文件有问题。

我有一个大约6000个对象的列表。这些对象就像自定义表单,因此,每个对象都有许多与之相关的字段。例如,请求可以由姓名、年龄、电话号码等组成。在这种情况下,每个请求都有相同的字段。因此,每个表单都与这些字段有一对多的关系。

所以我抓住这个自定义表单和一些标准的东西从它作为一个ValuesQuerySet,然后抓住与这个表单相关的所有字段。把它们加到每一行。最后使用dictionary writer将数据写入csv文件。这一切都很好,但性能是可怕的。处理6000条记录,每条记录包含大约15个自定义字段,大约需要90秒。(这会触发一个超时错误)。我需要一些方法使它更快。

我的代码看起来像这样....

forms = SomeForm.objects.filter(created_by=user).values('value1', 'value2', 'etc...')
for form in forms:
     id = form['id']
     fields = Fields.objects.filter(Form_id=id).values('value', 'field__label')
     for field in fields:
         label = field['form_field__label']
         value = field['value']
         form[label] = value
writer = csv.DictWriter(response, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(forms)

删除了一些代码,但这是它的要点。如果你能想办法加快速度或者有其他方法来处理,我会非常感激。

是的,我最终接受了cdvv7788的建议,并使这成为一个芹菜任务。由于人

最新更新