【发布时间】:2020-10-10 01:22:52
【问题描述】:
我确实将原始文件的存储配置为 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
【问题讨论】:
标签: django cloudinary