[英]Django Setting Custom Path for Storage ('str object is not callable')
I have a custom storage class I'm using and I am trying to set a different path to upload the file to but I keep getting "Str object is not callable". 我有一个自定义存储类,正在使用,并且尝试设置将文件上载到的其他路径,但是我不断收到“不可调用Str对象”的信息。
Here's the code where I call my custom class: 这是我称为自定义类的代码:
fs = DGStorage(user_login=user_login, name=name, content=content, csv=True)
fs.path = os.path.join("/u/vnc/web", "docs", "upload", "csv")
When fs.save is called, I get the str object error (very annoying). 调用fs.save时,出现str对象错误(非常烦人)。 I don't set the path in the storage class because it's set somewher else. 我没有在存储类中设置路径,因为它设置了其他方式。
Custom Storage Model: 自定义存储模型:
class DGStorage(FileSystemStorage):
def __init__(self, name=None, content=None, user_login=None, location=None, base_url=None,
file_permissions_mode=None, directory_permissions_mode=None, csv=False):
# FileSystemStorage.__init__(self, self.location)
self._location = location
self._base_url = base_url
self._file_permissions_mode = file_permissions_mode
self._directory_permissions_mode = directory_permissions_mode
self.name = name
self.content = content
self.user_login = str(user_login)
self.user_dir = self.user_login + datetime.now().strftime('_%Y%m%d')
self.csv = csv
super(DGStorage, self).__init__()
@property
def user_directory(self):
return safe_join(self.location, 'uploads', self.user_dir)
@property
def get_filename(self):
if not self.name:
self.name = self.content.name
name = self.name
name = name.replace(' ', '_')
return name
def path(self, name=None):
if not name:
name = self.content.name
else:
name = name.replace(' ', '_')
#if self.csv:
# return os.path.join("/u/vnc/web", "docs", "upload", "csv")
return safe_join(self.location, 'uploads', self.user_dir, name)
The self.csv doesn't seem to work either, it just halts when I set the path that way as well. self.csv似乎也不起作用,当我同样设置路径时,它也会暂停。
Used an if statement in the path. 在路径中使用了if语句。 Wasn't passing in the file name. 没有传递文件名。
Silly of me. 我真傻
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.