このパッケージは、django開発者が静的ファイルとメディアファイルを提供するためにCloudinaryを簡単に構成するのに役立ちます。 DEBUG設定に基づいて、開発または生産環境を自動的に検出します。
DEBUGモードを自動的に検出します。パッケージをインストールするには、実行します。
pip install django-cloudinary-helpercloudinary_helperをINSTALLED_APPSに追加: settings.pyで、 cloudinary_helper INSTALLED_APPSリストに追加します: INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
]静的ファイルとメディアファイルのストレージ構成を追加します。2つのスタチックファイルとメディアファイルがCludyNaryを介して提供されることを確認するには、次の設定をsettings.pyに追加します。
from decouple import config
from cloudinary_helper . utils import setup_cloudinary
if DEBUG :
# Development
STATIC_URL = '/static/'
STATICFILES_DIRS = [ BASE_DIR / 'static' ]
STATIC_ROOT = BASE_DIR / 'staticfiles' # This is where collectstatic will store static files
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'static/media' # This is where media files will be stored
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
else :
# Production
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
setup_cloudinary (
config ( 'CLOUDINARY_CLOUD_NAME' ),
config ( 'CLOUDINARY_API_KEY' ),
config ( 'CLOUDINARY_API_SECRET' )
)
DEFAULT_FILE_STORAGE = 'cloudinary_helper.storages.CloudinaryMediaStorage'
STATICFILES_STORAGE = 'cloudinary_helper.storages.CloudinaryStaticStorage' (オプション)アプリのストレージの使用:上記の構成を使用すると、DjangoモデルのFileFieldとImageFieldフィールドは、生産のファイルアップロードにCloudinaryを自動的に使用します。開発では、 DEBUG = Trueの場合、代わりにローカルファイルストレージが使用されます。
パッケージは、 DEBUG = Falseの場合、 FileFieldとImageField CloudinaryFieldに動的に置き換えます。
これは、モデルを手動で調整する必要がないことを意味します。モデルでデフォルトのFileFieldとImageFieldを使用するだけで、パッケージは残りを処理します。
from django . db import models
from cloudinary_helper . storages import get_storage_class
class YourModel ( models . Model ):
image = models . ImageField ( storage = get_storage_class (), upload_to = 'images/' )
file = models . FileField ( storage = get_storage_class (), upload_to = 'files/' )使いやすさ:開発者は、モデルでCloudinaryField明示的に使用することを学習したり忘れたりする必要はありません。
シームレスな統合:動作は環境に基づいて動的に変化します( DEBUG設定)。
後方互換性:標準のDjangoフィールドで記述されたモデルは、変更なしで予想どおりに機能します。
この実装により、開発者には不要な詳細を抽象化し、開発環境と生産環境の両方とシームレスな統合を提供することにより、パッケージがより開発者に優しいものになります。
StaticStorageクラスはローカルファイルシステムに戻ります。 STATICFILES_STORAGE以外の静的ファイルには追加の構成は必要ありませんDEBUG = False )では、Staticファイルとメディアファイルの両方にCloudinaryが使用されます。DEBUG = True )では、静的ファイルとメディアファイルの両方にローカルファイルストレージが使用されます。setup_cloudinary()関数は、 settings.pyで手動で構成する必要なく、ストレージを自動的にセットアップするのに役立ちます。 リポジトリをフォークし、プルリクエストを送信してください。すべての変更が十分にテストされていることを確認し、Djangoのベストプラクティスに従ってください。
このパッケージはオープンソースであり、MITライセンスで利用できます。プロジェクトで自由に使用してください。