Установите изображение по умолчанию в CloudinaryField в модели - PullRequest
0 голосов
/ 28 марта 2020

Я недавно начал использовать Cloudinary для хранения мультимедиа. У меня есть модель профиля с полями изображения и обложки

Без облачного хранилища

Перед переходом на облачное хранилище носителей модель выглядела следующим образом:

class Profile(models.Model):
    user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)

    # setup without Cloudinary
    image = models.ImageField(default='profile_image/default.jpg', upload_to='profile_image', blank=False)
    cover_image = models.ImageField(default='cover_image/default.jpg', upload_to='cover_image', blank=False)

Это позволило мне установить изображение по умолчанию для обоих полей.

С Cloudinary

Теперь, после добавления Cloudinary, это выглядит так:

class Profile(models.Model):
    user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)

    # setup with Cloudinary
    image = CloudinaryField('image')
    cover_image = CloudinaryField('cover_image')

Я хочу иметь возможность установить изображения по умолчанию для обоих полей.

Вот соответствующие версии библиотек

Django==2.1.5
cloudinary==1.17.0
django-cloudinary-storage==0.2.3
olefile==0.46
cloudinary-cli==0.3.4

1 Ответ

0 голосов
/ 29 марта 2020

Cloudinary теперь поддерживает доставку изображений по умолчанию, когда запрошенное изображение не существует.

При условии, что вы хотите, чтобы изображение по умолчанию отображалось на странице, У меня ограниченные знания о том, можете ли вы это сделать. из модели вы можете реализовать эту функцию в представлении, которое отображает эту страницу, например

CloudinaryImage("if_set_image.jpg").image(transformation=[
'default_image': "default_image.png"
])

. Для получения дополнительной информации прочитайте эту статью или документацию

Учитывая, что вам нужно работать с облачным сервисом, вы можете также рассмотреть вопрос о сохранении стандартного django предоставляемого ImageField (следовательно, легко установить опцию по умолчанию) и использовать cloudinary.uploader.upload("my_image.jpg"), чтобы загрузить ваши изображения в облачный сервис по вашему мнению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...