用户上传2个.ini文件后,我希望将这两个文件保存在以下文件夹中。
MEDIA / uploadedconfigs /打印机/塑料/
但是,它目前正在保存到以下地址。
MEDIA / uploadedconfigs /无/
以下是上传文件的代码。
models.py
def UploadedConfigPath(instance, filename):
return os.path.join('uploadedconfigs', str(instance.id), filename)
class ConfigFiles(models.Model):
Printer = models.CharField(_('Printer Model'),
max_length=100, blank=True, null=True, unique=False)
Plastic = models.CharField(_('Plastic'),
max_length=40, blank=True, null=True, unique=False)
creator = models.CharField(_('Creator'),
max_length=40, blank=True, null=True, unique=False)
HDConfig = models.FileField(_('High Detail'),
upload_to=UploadedConfigPath)
LDConfig = models.FileField(_('Low Detail'),
upload_to=UploadedConfigPath)
pub_date = models.DateTimeField(_('date_joined'),
default=timezone.now)
我不是“实例”正在做什么,但我被告知它是什么吐出“无”文件夹名称。我还被告知我可能需要将文件放在一个临时文件夹中,但我不确定这会带来什么。任何帮助,将不胜感激!
答案 0 :(得分:2)
尝试通过在settings.py
中设置参数来使用原始方法 MEDIA_ROOT = join(PROJECT_ROOT, '../media/')"
MEDIA_URL = '/media/'
在您的档案中:
def UploadedConfigPath(instance, filename):
return os.path.join(settings.MEDIA_ROOT, 'uploadedconfigs/', str(instance.id), '/', filename)
答案 1 :(得分:1)
您可以将函数UploadedConfigPath
替换为:
def UploadedConfigPath(instance, filename):
return os.path.join('uploadedconfigs', 'Printer', 'Plastic', filename)
修改:
这应该这样做:
def UploadedConfigPath(instance, filename):
return os.path.join('uploadedconfigs', instance.Printer, instance.Plastic, filename)