如果您有垂直监视器,我的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)