tôi đã tạo một backend lưu trữ tùy chỉnh, các tập tin được gọi là storages.py
và được đặt trong một ứng dụng gọi là core
:Django - Lỗi khi nhập storages.backends
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)
Trong settings.py
, tôi đã follwing:
STATICFILES_STORAGE = 'core.storages.S3StaticBucket'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
Khi tôi cố gắng làm python manage.py collectstatic
nó cho thấy các lỗi sau:
django.core.exceptions.ImproperlyConfigured: Error importing storage module core.storages: "No module named backends.s3boto"
Và khi tôi chạy python manage.py shell
và cố gắng nhập giống nhau:
>>>
>>> from django.conf import settings
>>> from storages.backends.s3boto import S3BotoStorage
>>>
Bất kỳ ý tưởng những gì tôi đang làm sai?
Bạn có thể nhập một 'lõi .storages.S3StaticBucket' trong trình bao? Có lẽ bạn đã bỏ lỡ một tập tin '__init __. Py' ở đó. –
Chỉ cần thử làm như vậy, tôi đã nhận 'ImportError: Không có mô-đun có tên backends.s3boto'. Tôi có một '__init __. Py' trống trong ứng dụng' core'. – abstractpaper
Hm. Hãy thử để bình luận một 'từ storages.backends.s3boto nhập dòng S3BotoStorage' trong storages.py, và viết thay vì một' kho lưu trữ' và sau đó trong một dòng sau 'print storages .__ file__'. Sau đó nhập một 'core.storages.S3StaticBucket' vào trong shell. Sau đó nhập thủ công 'storages' trong shell và in' storages .__ file__'. Nếu các đường dẫn khác nhau - bạn có câu trả lời. –