使用 FileField 创建 Django 模型的实例

got*_*nes 3 django django-models

如何创建带有 Django 模型的实例FileField?

例如,给定一个简单的模型

from django.db import models

class FileModel(models.Model):
    model_file = models.FileField(upload_to='files')
Run Code Online (Sandbox Code Playgroud)

如何创建 的实例FileModel,传入该model_file字段的现有文件?

got*_*nes 5

您可以打开文件系统上的现有文件,将其包装在 DjangoFile实例中,然后将其直接传递给字段:

>>> from django.core.files import File
>>> from myproject.myapp.models import FileModel
>>> with open('/path/to/existing_file.txt') as f:
...     wrapped_file = File(f)
...     m = FileModel(model_file=wrapped_file)
...     m.save()
...
>>> m.model_file.name
u'files/existing_file.txt'
Run Code Online (Sandbox Code Playgroud)