【发布时间】:2017-08-02 15:36:03
【问题描述】:
在我的 Django View 文件中,我需要从元组列表中生成一个 CSV 文件,并将 CSV 文件存储到我的模型的 FileField 中。
class Bill(models.Model):
billId = models.IntegerField()
bill = models.FileField(upload_to='bills')
我在这个网站上搜索,发现了一些帖子,例如Django - how to create a file and save it to a model's FileField?,但解决方案可以帮助我。
我需要将 CSV 文件存储在 'media/bills/' 文件夹中,我希望 CSV 文件可以与数据库中的 Bill 对象一起删除。
我尝试了以下代码,但它不能满足我的要求。对于每个文件,它将生成两个文件“output.csv”和“output_xxesss.csv”。在这两个文件不能通过调用'Bill.objects.all().delete()'来删除。
path = join(settings.MEDIA_ROOT, 'bills', 'output.csv')
print path
f = open(path, 'w+b')
f.truncate()
csvWriter = csv.writer(f)
csvWriter.writerow(('A', 'B', 'C'))
for r in rs:
print r
csvWriter.writerow(convert(r))
bill = Bill()
bill.billId = 14
bill.bill.save('output.csv', File(f))
bill.save()
谢谢
我尝试了以下代码,但它无法通过调用'Bill.objects.all().delete()'来删除文件。
bill = Bill()
bill.billId = 14
bill.bill.name = 'bills/output.csv'
bill.save()
【问题讨论】:
标签: python django csv filefield