首页 > 解决方案 > 无法在 django admin 中从 cloudinary 打开原始文件

问题描述

我确实将原始文件的存储配置为 caninary,但无法在 django admin 中打开它(显示 404 错误)。我错过了什么?

我在setting.py中设置了存储位置,如下:

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),]

MEDIA_URL = '/media/'

DEFAULT_FILE_STORAGE = 'cloudinary_storage.storage.MediaCloudinaryStorage'
DEFAULT_FILE_STORAGE1 = 'cloudinary_storage.storage.RawMediaCloudinaryStorage'

CLOUDINARY_STORAGE = {
 'CLOUD_NAME': 'XXXXX',
 'API_KEY': 'XXXXXX',
 'API_SECRET': 'XXXX-XXXXX',
}

CKEDITOR_UPLOAD_PATH = DEFAULT_FILE_STORAGE


CKEDITOR_CONFIGS = {
  'default': {
      'toolbar': None,
  },
 }

添加到 urls.py

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('team_profile.urls')),
path('ckeditor/', include('ckeditor_uploader.urls')),

 ]+ static(settings.MEDIA_URL, document_root=settings.DEFAULT_FILE_STORAGE)

在 models.py 中设置原始文件的上传路径:

from django.db import models
from django.utils import timezone
from ckeditor_uploader.fields import RichTextUploadingField
from cloudinary_storage.storage import RawMediaCloudinaryStorage

class apply_position(models.Model):
name = models.CharField(max_length=200)
phone = models.CharField(max_length=8)
mail = models.EmailField(blank=False)
file = models.FileField(upload_to='add/file_save/', null=False, storage=RawMediaCloudinaryStorage())
time = models.DateTimeField(default=timezone.now)

def __str__(self):
    return self.name

forms.py 很好,我已经把它放到了 views.py

def recruit(request):
form = addForm(request.POST or None, request.FILES or None)
if request.method == 'POST':
    if form.is_valid():
        form.save()
        return redirect('/')
else:
    form = addForm()

当我尝试在管理站点中打开文件时遇到的错误:

https://res.cloudinary.com/xxxxx/raw/upload/v1/media/add/file_save/xxxx.pdf 
  HTTP ERROR 404

标签: djangocloudinary

解决方案


Cloudinary 中的 PDf 被视为图像文件。您能否尝试上传它们并让我们知道这是否有帮助?此外,根据我们安全政策的最新更新,我们限制了新创建的 PDF 和存档文件免费帐户的交付。此类文件仍然可以上传,但具体限制在交付上。

如果您有免费帐户,请联系 support@cloudinary.com 并提供您的云名称和有关您的用例的更多详细信息,我们可以取消对您帐户的此限制。

最好的,雪莉


推荐阅读