تساعد هذه الحزمة مطوري Django بسهولة على تكوين Cloudinary لخدمة الملفات الثابتة والوسائط. يكتشف تلقائيًا بيئة التطوير أو الإنتاج بناءً على إعداد DEBUG .
DEBUG .لتثبيت الحزمة ، قم بتشغيل:
pip install django-cloudinary-helpercloudinary_helper إلى INSTALLED_APPS : cloudinary_helper settings.py INSTALLED_APPS بك INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
] أضف تكوينات التخزين للملفات الثابتة والوسائط: لضمان تقديم ملفات ثابتة ووسائط عبر الإنتاج ، أضف الإعدادات التالية إلى 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' (اختياري) باستخدام التخزين في التطبيق الخاص بك: مع التكوينات أعلاه ، فإن حقول FileField و ImageField الخاصة بك في نماذج Django ستستخدم تلقائيًا لتحميل الملفات في الإنتاج. في التطوير ، عندما يكون DEBUG = True ، سيتم استخدام تخزين الملفات المحلي بدلاً من ذلك.
تستبدل الحزمة ديناميكيًا FileField و ImageField مع CloudinaryField عند DEBUG = False .
هذا يعني أنك لست بحاجة إلى ضبط النماذج يدويًا. ما عليك سوى استخدام 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 ) ، سيتم استخدام Cloudinary لكل من الملفات الثابتة والوسائط.DEBUG = True ) ، سيتم استخدام تخزين الملفات المحلية لكل من الملفات الثابتة والوسائط.setup_cloudinary() مفيدة لإعداد التخزين تلقائيًا دون الحاجة إلى تكوينه يدويًا في settings.py . لا تتردد في توتر المستودع وتقديم طلبات السحب. يرجى التأكد من اختبار جميع التغييرات بشكل جيد ومتابعة أفضل ممارسات Django.
هذه الحزمة مفتوحة المصدر ومتاحة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. لا تتردد في استخدامه في مشاريعك.