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

时间:2018-07-09 17:45:27

标签: python django

我正在使用一个自定义存储类,我试图设置一个不同的路径来将文件上传到其中,但是我不断收到“不可调用Str对象”的信息。

这是我调用自定义类的代码:

fs = DGStorage(user_login=user_login, name=name, content=content, csv=True)
fs.path = os.path.join("/u/vnc/web", "docs", "upload", "csv")

调用fs.save时,出现str对象错误(非常烦人)。我没有在存储类中设置路径,因为它设置了其他名称。

自定义存储模型:

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)

self.csv似乎也不起作用,当我同样设置路径时,它也会暂停。

1 个答案:

答案 0 :(得分:0)

在路径中使用了if语句。没有传递文件名。

我很傻