好吧,我在从数据生成CSV文件时遇到了问题。你知道吗
我有大约6000件物品的清单。这些物体就像定制的形状, 因此每个对象都有许多与之相关联的字段。例如,请求可以包括姓名、年龄、电话号码等。在这种情况下,每个请求都有相同的字段。因此每个表单都与这些字段有一对多的关系。你知道吗
所以我从这个定制表单中获取一些标准的东西作为一个ValuesQuerySet,然后获取与这个表单相关的所有字段。并将它们添加到每一行。最后,我使用dictionary writer将数据写入csv。这一切都很好,但表现很糟糕。用大约15个自定义字段做6000条记录需要大约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的建议,把这当成了一个芹菜任务。谢谢你们
相关问题 更多 >
编程相关推荐