首页 > 解决方案 > 如何全局告诉 Cloudinary 自动决定 Django 中的文件类型?

问题描述

我使用cloudinary作为我的 Django 项目的默认媒体存储,所以我只是这样设置它:

设置.py

   INSTALLED_APPS = [
       'cloudinary'
   ]

   DEFAULT_FILE_STORAGE = 'cloudinary_storage.storage.MediaCloudinaryStorage'

   CLOUDINARY_STORAGE = {
      'CLOUD_NAME': os.environ.get('CLOUDINARY_STORAGE.CLOUD_NAME'),    # env is set right
      'API_KEY': os.environ.get('CLOUDINARY_STORAGE.API_KEY'),
      'API_SECRET': os.environ.get('CLOUDINARY_STORAGE.API_SECRET'),
   }

所以现在如果我想设置一个 ImageField 我没有问题,只需使用默认的 Django 语法:

   image = ImageField(upload_to=get_image_upload_path,
                      max_length=255)

但是当我想以我的方式存储文件时,它是视频文件:

   video = FileField(upload_to=get_video_upload_path,
                     max_length=255)

我收到此错误:Invalid image file这意味着使用 cloudinary 存储的 Django 尝试将此文件作为图像上传,这被设置为 cloudinary 的默认行为。

所以我的问题是,是否有办法在全球范围内告诉 cloudinary自动决定文件的类型?

标签: djangodjango-modelscloudinarydjango-file-upload

解决方案


推荐阅读