一。 settings.py
MEDIA_URL = "/qir/" #设置获取文件时的访问根路径
MEDIA_ROOT= os.path.join(BASE_DIR, "FileRoot") #设置文件存储在项目的根路径(MEDIA_ROOT 是固定值,不可更改)
二。 models.py
classMyFiles(models.Model):
my_files_path= PathAndRename("my_files") #该表的文件存储路径
file = models.FileField(verbose_name="文件", null=True)
三。 自定义一个创建表文件夹的类
from django.utils.deconstruct importdeconstructiblefrom django.utils importtimezonefrom django.conf importsettingsimportos
@deconstructibleclassPathAndRename(object):def __init__(self, sub_path):
self.path= sub_path #要创建的文件夹名称
self.full_path= "%s/%s" % (settings.MEDIA_ROOT, sub_path) #拼接 settings 中设置的根目录
if not os.path.exists(self.full_path): #拼接的路径是否被创建
os.makedirs(self.full_path)def __call__(self, instance, filename):
ext= filename.split('.')[-1]
t= timezone.n