简体   繁体   English

Django设置存储的自定义路径(“ str对象不可调用”)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM