以编程方式在Django中上传文件

Sap*_*Sun 9 django django-models django-file-upload

我检查了几个其他线程,但我仍然有问题.我有一个包含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()
Run Code Online (Sandbox Code Playgroud)

谢谢!

Jud*_*ill 20

它可以像打开文件一样简单.由于您以'wb +'(write,binary,append)打开文件,因此句柄位于文件的末尾.尝试:

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()
Run Code Online (Sandbox Code Playgroud)

现在它在文件的开头打开了.

  • 一个幸运的猜测;)...我从来没有真正需要以编程方式上传文件,但这是我唯一看到的看起来很可疑的东西. (2认同)
  • 什么是“文件名”? (2认同)