【发布时间】:2015-06-22 19:21:17
【问题描述】:
我试图让 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)
有什么想法吗?
【问题讨论】:
-
可以试试 django get_absolute_url() 方法
-
我看不出这有什么帮助。我想我刚刚找到了一些支持我遇到问题的文档。 code.djangoproject.com/ticket/12589 这一切都很好,但我需要这样做,而且当我的代码非常清楚时,我不明白为什么 Django 会强迫我将文档上传到不安全的位置!
标签: django