Hier ist meine Einstellungen.
Code: Select all
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"listings",
"rest_framework",
"rest_framework_simplejwt",
"corsheaders",
'django_filters',
'cloudinary_storage',
'cloudinary',
]
# Cloudinary config
CLOUDINARY_STORAGE = {
"CLOUD_NAME": config("CLOUDINARY_CLOUD_NAME"),
"API_KEY": config("CLOUDINARY_API_KEY"),
"API_SECRET": config("CLOUDINARY_API_SECRET"),
}
cloudinary.config(
cloud_name = config('CLOUDINARY_CLOUD_NAME'),
api_key = config('CLOUDINARY_API_KEY'),
api_secret = config('CLOUDINARY_API_SECRET')
)
DEFAULT_FILE_STORAGE = 'cloudinary_storage.storage.MediaCloudinaryStorage'
< /code>
Model.py-Datei: < /p>
class Amenity(models.Model):
name = models.CharField(max_length=100, unique=True)
icon = models.ImageField(upload_to='amenity_icons/', null=True)
< /code>
Ich habe versucht, mit dem Administratorfeld hochzuladen. Es speichert lokal trotz der Einstellungen default_file_storage
Die Umgebungskonfiguration ist richtig geladen (ich habe durch Drucken).
Code: Select all
>>> from django.conf import settings
>>> from django.core.files.storage import default_storage
>>> print(settings.DEFAULT_FILE_STORAGE)
cloudinary_storage.storage.MediaCloudinaryStorage
>>> print(default_storage.__class__)
< /code>
Ich werde arbeiten, wenn ich in jedem Bildfeld in jedem Modell manuell angeben werde.from cloudinary_storage.storage import MediaCloudinaryStorage
class Amenity(models.Model):
name = models.CharField(max_length=100, unique=True)
icon = models.ImageField(
upload_to='amenity_icons/',
null=True,
storage=MediaCloudinaryStorage
)