django.core.files 模块及其子模块包含了 Django 中基本的文件处理的内置类。

在内部,当 Django 需要表示一个文件时,会使用这个类。

在这些情况下,这个属性本身可能是一个 File 子类(而且不一定是同一个子类)。只要有可能,就使用子类本身的属性和方法,而不是子类的 file 属性。

当重新打开一个文件时,mode 将覆盖文件原来打开的任何模式;None 表示用原来的模式重新打开。

这对非常大的文件特别有用,因为它允许将它们从磁盘上串联起来,避免将整个文件存储在内存中。

如果文件足够大,需要多个分块才能访问其所有内容,则返回 True。

ContentFile 类继承自 File,但与 File 不同的是,它操作的是字符串内容(也支持字节),而不是实际的文件。例如:

Django 提供了一个专门针对图片的内置类。 django.core.files.images.ImageFile 继承了 File 的所有属性和方法,并额外提供了以下内容。

任何与对象相关联的 File (如下面的 Car.photo)也会有几个额外的方法:

使用提供的文件名和内容保存一个新文件。这不会替换现有的文件,但会创建一个新的文件并更新对象以指向它。如果 save 为 True,文件保存后将调用模型的 save() 方法。也就是这两行:

从模型实例中删除文件并删除底层文件。如果 save 是 True,一旦文件被删除,模型的 save() 方法将被调用。

在 django-users 邮件列表存档中搜索信息,或者发布一个问题。

在 #django IRC 频道上提问,或者搜索 IRC 历史找到相似的问题与解答。