class ModelFile(models.Model):
ufile = models.FileField(upload_to="files")
我在内部有一些管理命令:
...
my_file = ModelFile.objects.create(ufile='/home/myfile.txt')
我有对象实例,但我没有在项目的files目录中看到myfile.txt?我做错了什么?
答案 0 :(得分:0)
原因是仅使用文件路径创建新的模板文件并不实际复制文件 - 它只链接到已存在的文件。要实际复制文件,您可以使用ContenFile,如SO答案:Duplicate Model Instance
答案 1 :(得分:0)
我有[模型]实例,但是我没有在项目的files目录中看到myfile.txt?
那是对的。 Model.create
创建模型的实例,并指定您指定的所有字段值。
您的代码中没有任何内容可以在文件系统上创建相应的文件。
答案 2 :(得分:0)
from django.core.files import File
instance = ModelFile.objects.create()
with open('/home/filename.txt', 'w') as file:
instance.ufile.save('filename.txt', File(file))