新人来了,先生。我设法将 django-ajax-upload 安装到我的 django 学习项目中。并使用它的初始视图、url 和模板来查看它是如何工作的。我成功地将文件上传到它的默认目录“上传”。
现在,我正在尝试将django-ajax-upload使用的 UPLOAD_DIR 更改为类似于 'endorsement' 文件夹的内容。
关于 django-ajax-upload:UPLOAD_DIR 位于类 LocalUploadBackend 下的 local.py 中。
/ajaxuploader/backends/local.py
class LocalUploadBackend(AbstractUploadBackend):
UPLOAD_DIR = "uploads"
def setup(self, filename, *args, **kwargs):
self._path = os.path.join(
settings.MEDIA_ROOT, self.UPLOAD_DIR, filename)
try:
os.makedirs(os.path.realpath(os.path.dirname(self._path)))
except:
pass
self._dest = BufferedWriter(FileIO(self._path, "w"))
ajax 操作正在调用import_uploader = AjaxFileUploader()
上传文件。AjaxFileUploader 在哪里有这个__init__
class AjaxFileUploader(object):
def __init__(self, backend=None, **kwargs):
if backend is None:
backend = LocalUploadBackend
self.get_backend = lambda: backend(**kwargs)
我不确定这是否是通过子类更改 UPLOAD_DIR 的正确方法。这是我的代码。
from ajaxuploader.views import AjaxFileUploader
from ajaxuploader.backends.local import LocalUploadBackend
class myajaxfileuploader(AjaxFileUploader):
def __init__(self, backend=None, **kwargs):
local = LocalUploadBackend.UPLOAD_DIR
local = "endorsement"
super(myajaxfileuploader,self).__init__(backend=local, **kwargs)
我可以看到文件上传文件按钮,但上传失败。这样做的正确方法是什么?