上传到Django的绝对路径

时间:2015-06-22 19:21:17

标签: django

我试图让FileField的upload_to成为绝对路径,而不是相对于MEDIA_ROOT。如果我使路径绝对,我在文件的帖子上得到400错误。如果没有领先/它存储在MEDIA_ROOT下。上传的文档需要安全保存,而不是MEDIA_ROOT,但我也有需要进入MEDIA_ROOT的图像,因此无法将其更改为公共区域。

这是我的代码......

class Document(models.Model):
def get_upload_path(instance, filename):
    path = os.path.join( settings.DOCUMENT_DIR,  str(instance.client.id), 'documents',  str(instance.id), filename)
    return path

uploaded = models.FileField(null=True, blank=True, upload_to=get_upload_path, max_length=255)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您应该能够为每个存储位置创建不同的FileSystemStorage实例。

或者,您可以编写custom storage system来处理文件。