12

我已经检查了其他几个线程,但我仍然遇到问题。我有一个包含 FileField 的模型,并且我正在为各种目的生成半随机实例。但是,我在上传文件时遇到问题。

当我创建一个新文件时,它似乎可以工作(新实例保存到数据库中),在适当的目录中创建了一个文件,但文件的内容丢失或损坏。

以下是相关代码:

class UploadedFile(models.Model):
  document = models.FileField(upload_to=PATH)


from django.core.files import File

doc = UploadedFile()
with open(filepath, 'wb+') as doc_file:
   doc.documen.save(filename, File(doc_file), save=True)
doc.save()

谢谢!

4

1 回答 1

24

能不能像打开文件一样简单。由于您在“wb+”(写入、二进制、追加)中打开了文件,因此句柄位于文件末尾。尝试:

class UploadedFile(models.Model):
  document = models.FileField(upload_to=PATH)


from django.core.files import File

doc = UploadedFile()
with open(filepath, 'rb') as doc_file:
   doc.document.save(filename, File(doc_file), save=True)
doc.save()

现在它在文件的开头打开。

于 2010-01-03T04:18:12.087 回答