Django MEDIA_ROOT 指向网络驱动器
Django MEDIA_ROOT pointed to network drive
我正在尝试将通过 Django 管理站点上传的文件放在网络驱动器上。假设此驱动器的路径是“\\FILESERVER\Django”。
我最初的想法是将我的媒体根设置为我用来通过文件资源管理器访问驱动器的相同路径:
#settings.py
MEDIA_ROOT = r'\FILESERVER\Django'
示例模型:
#models.py
class Article(models.Model):
title = models.CharField(max_length=128)
pdf = models.FileField(upload_to='articles', blank=True, null=True)
def __str__(self):
return self.title
但是当我上传文件时,它只是在我的本地 C: 驱动器上创建文件夹。
(例如 C:\FILESERVER\Django\articles)。有什么方法可以告诉 Django 这应该是网络驱动器的路径?
注意:这是 windows 机器上的 Django 2.0.4 应用程序 运行。
我相信您要找的是 pathlib
。看看这里:
https://docs.python.org/3/library/pathlib.html#methods-and-properties
像 PureWindowsPath('//FILESERVER/Django').drive
这样的东西应该可以解决 MEDIA_ROOT
,IIRC。
如果你使用网络文件服务器,你可能需要一个自定义的django文件存储class。
我正在尝试将通过 Django 管理站点上传的文件放在网络驱动器上。假设此驱动器的路径是“\\FILESERVER\Django”。
我最初的想法是将我的媒体根设置为我用来通过文件资源管理器访问驱动器的相同路径:
#settings.py
MEDIA_ROOT = r'\FILESERVER\Django'
示例模型:
#models.py
class Article(models.Model):
title = models.CharField(max_length=128)
pdf = models.FileField(upload_to='articles', blank=True, null=True)
def __str__(self):
return self.title
但是当我上传文件时,它只是在我的本地 C: 驱动器上创建文件夹。 (例如 C:\FILESERVER\Django\articles)。有什么方法可以告诉 Django 这应该是网络驱动器的路径?
注意:这是 windows 机器上的 Django 2.0.4 应用程序 运行。
我相信您要找的是 pathlib
。看看这里:
https://docs.python.org/3/library/pathlib.html#methods-and-properties
像 PureWindowsPath('//FILESERVER/Django').drive
这样的东西应该可以解决 MEDIA_ROOT
,IIRC。
如果你使用网络文件服务器,你可能需要一个自定义的django文件存储class。