相关疑难解决方法(0)

试图理解Django源代码和缺少参数TypeError的原因

如果您有垂直监视器,我的IDE和Traceback 的屏幕截图(纵向视图)显示此处粘贴的所有代码可能更容易阅读.

上下文:尝试ImageField使用S3BotoStorage 将图像从URL保存到EC2上托管的Django ,并使用S3上的文件.我很困惑,因为所有这些都表明Django仍然像本地存储一样对待它,而它应该是S3.

有问题的行似乎导致了错误:

def get_filename(self, filename):
    return os.path.normpath(self.storage.get_valid_name(os.path.basename(filename)))

def get_valid_name(self, name):
    """
    Returns a filename, based on the provided filename, that's suitable for
    use in the target storage system.
    """
    return get_valid_filename(name)
Run Code Online (Sandbox Code Playgroud)

TypeError异常: get_valid_name() missing 1 required positional argument: 'name'

最后一个本地变量在错误之前跟踪get_valid_name:

filename        'testimagefilename'
self        <django.db.models.fields.files.ImageField: image>
Run Code Online (Sandbox Code Playgroud)

(只有这两个水平分隔线内的东西来自我,其余来自Django 1.9)

image.image.save('testimagefilename', File(temp), save=True)
Run Code Online (Sandbox Code Playgroud)

来自Traceback的本地变量(不确定ValueErroron image,我认为是因为它尚未创建):

File        <class 'django.core.files.base.File'>
image       Error in formatting: ValueError: The 'image' attribute has no file associated with …
Run Code Online (Sandbox Code Playgroud)

python django boto django-storage

3
推荐指数
1
解决办法
471
查看次数

标签 统计

boto ×1

django ×1

django-storage ×1

python ×1