Azi*_*ari 9 django django-storage
我创建了一个自定义存储后端,该文件被调用storages.py并放置在一个名为的应用程序中core:
from django.conf import settings
from storages.backends.s3boto import S3BotoStorage
class S3StaticBucket(S3BotoStorage):
def __init__(self, *args, **kwargs):
kwargs['bucket_name'] = getattr(settings, 'static.mysite.com')
super(S3BotoStorage, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
在settings.py,我有以下内容:
STATICFILES_STORAGE = 'core.storages.S3StaticBucket'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做python manage.py collectstatic时显示以下错误:
django.core.exceptions.ImproperlyConfigured: Error importing storage module core.storages: "No module named backends.s3boto"
Run Code Online (Sandbox Code Playgroud)
当我运行python manage.py shell并尝试导入相同的:
>>>
>>> from django.conf import settings
>>> from storages.backends.s3boto import S3BotoStorage
>>>
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
存在名称空间冲突; 在storage绝对名称与擦出storage本地名称.它可能不直观,但您可以从模块中导入:
// file my_module/clash.py
import clash
print clash.__file__
Run Code Online (Sandbox Code Playgroud)
现在我们在一个包含以下内容的目录中运行python shell my_module:
$ python
>>> import my_module.clash
my_module.clash.py
Run Code Online (Sandbox Code Playgroud)
简而言之,您的模块尝试从自身导入后端.
您需要绝对导入 - 尝试导入与内置模块同名的模块会导致导入错误.
| 归档时间: |
|
| 查看次数: |
5316 次 |
| 最近记录: |