django - 我无法在 django CKEditor 中上传图像
问题描述
我想像 StackOverflow 一样对图像进行文本编辑器,我可以正确编辑图像以及我观看的一些视频的文本,他们显示他们可以通过配置 Django 设置 Django 项目 URL 来做到这一点我现在做了同样的事情我能够将图像粘贴到文本字段编辑器中,但仅适用于前端用户的超级用户,他们可以上传它当我在谷歌上搜索时显示此错误,因为 CKEditor 是使用管理员所需的默认登录开发的,您可以阅读相同的文档在这里阅读 所以当我按照它说的东西给我一个更大的错误现在没有人可以上传图像它说错误 404
这是我的 django 项目 url 文件
from django.contrib import admin
from django.urls import path
from django.urls.conf import include
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.auth.decorators import login_required
from django.views.decorators.cache import never_cache
from ckeditor_uploader import views as ckeditor_views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('home.urls')),
path('ckeditor', include('ckeditor_uploader.urls')),
# path('ckeditor/upload/', login_required(ckeditor_views.upload), name='ckeditor_upload'),
# path('ckeditor/browse/', never_cache(login_required(ckeditor_views.browse)), name='ckeditor_browse'),
] + static(settings.MEDIA_URL , document_root = settings.MEDIA_ROOT)
这是setting.py文件
"""
Django settings for crm project.
Generated by 'django-admin startproject' using Django 3.2.6.
For more information on this file, see
https://docs.djangoproject.com/en/3.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.2/ref/settings/
"""
from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-hyj3-z7ggi8_sald%oa&#++xge07k(v2zfidgaa%g2_#$$ge=h'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home',
'ckeditor',
'ckeditor_uploader',
]
CKEDITOR_UPLOAD_PATH = "uploads/"
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'crm.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR/"templates"],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'crm.wsgi.application'
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
STATIC_URL = '/static/'
STATIC_ROOT = '/static/'
MEDIA_URL ='/media/'
MEDIA_ROOT ='/media/'
STATICFILES_DIRS =(
os.path.join(BASE_DIR,'static'),
)
#added manually
STATICFILES_DIRS = [
BASE_DIR / "static",
'/var/www/static/',
]
这是我的models.py
class Followup(models.Model):
f_lead=models.ForeignKey(Lead,on_delete=models.CASCADE,blank=True,null=True)
created_by = models.CharField(max_length=20,blank=True,null=True)
body = RichTextUploadingField(blank= True,null = True)
created_date = models.DateTimeField(auto_now_add=True)
updated_date = models.DateTimeField(auto_now_add=True)
解决方案
推荐阅读
- c++ - 关闭 switch/do 循环 C++
- json - 拆分包含数组的 Json 文件,以使用 Azure 数据流将每个数组存储在 Sql 表中
- wix - 有什么方法可以在 wix 引导程序应用程序的日志文件中隐藏变量的日志记录
- java - 矩阵的边界不适合java中给出的顶点数
- python - Selenium 与 python 没有找到特定的链接
- python - 在函数中使用任意关键字参数时,在打印字典时不会打印所有键值对
- java - 收到一条 Java 错误消息说 java.util.NoSuchElementException
- binance - Binance oauth,我在哪里可以为此创建开发者帐户
- scilab - 在 scilab 中加载通信工具箱时出错
- c# - 无法在框架 4.7.2 中加载文件或程序集或其依赖项之一