我有一个存储.exe文件的模型。我想从模型中取出该文件并将其粘贴到特定文件夹中而不更改模型。有什么想法吗?
模型是这样的:
{{1}}
我需要能够从模型中提取程序安装程序,切断它与模型本身的任何连接,然后在模型中放入一个新文件(同时将旧安装程序保留在一个单独的位置)。
答案 0 :(得分:2)
FileField
默认情况下使用django.core.files.storage.FileSystemStorage
,因此它包含带文件名(文件路径)的字符串,而不是文件本身。只需使用该文件名(路径)将文件复制到您需要的目的地。
从这里https://docs.djangoproject.com/en/dev/topics/files/#using-files-in-models:
当您使用FileField或ImageField时,Django提供了一组API 你可以用来处理那个文件。
考虑以下模型,使用ImageField存储照片:
from django.db import models class Car(models.Model): name = models.CharField(max_length=255) price = models.DecimalField(max_digits=5, decimal_places=2) photo = models.ImageField(upload_to='cars')
任何Car实例都会有一个可以用来获取的照片属性 附上照片的详细信息:
>>> car = Car.objects.get(name="57 Chevy") >>> car.photo <ImageFieldFile: chevy.jpg> >>> car.photo.name 'cars/chevy.jpg' >>> car.photo.path '/media/cars/chevy.jpg' >>> car.photo.url 'http://media.example.com/cars/chevy.jpg'