На сервере timeweb не работает django-ckeditor в админ панели
на сервере:
Python == 3.10
Django == 4.2.9
django-ckeditor == 5.9.0 - 6.7.0
редактор установил согласно инструкции https://django-ckeditor.readthedocs.io/en/latest/#section-9 переписывать нет смысла
мои файлы:
models.py
from ckeditor.fields import RichTextField
...
education = RichTextField(verbose_name='Образование')
...
settings.py
INSTALLED_APPS = [
...
'ckeditor',
]
STATIC_ROOT = '/home/.../public_html/static/'
STATIC_URL = '/static/'
получаю ошибку в консоли
VM1137 ckeditor.js:260 Uncaught TypeError: Cannot set properties of undefined (setting 'dir')
at Object.d (VM1137 ckeditor.js:260:54)
at w (VM1137 ckeditor.js:261:181)
at Array.y (VM1137 ckeditor.js:261:336)
at z (VM1137 ckeditor.js:261:420)
at A.CKEDITOR.env.ie.f.$.onerror (VM1137 ckeditor.js:262:429)
в консоли также появляются следующие пути: expert.umiic.ru/admin/experts/expert/4/change/static/ckeditor/ckeditor/config.js?t=N5UC expert.umiic.ru/admin/experts/expert/ 4/change/static/ckeditor/ckeditor/skins/moono-lisa/editor.css?t=N5UC expert.umiic.ru/admin/experts/expert/4/change/static/ckeditor/ckeditor/lang/ru.js ?t=N5UC
как можно решить это?
Попробуйте пересобрать обновлённую статику вашего проекта, используя команду в IDE (или консоли):
python manage.py collectstatic
.
В браузере выполните хард-релоад с помощью Ctrl+F5
(перезагрузка сбросит кэш страницы и обновит статичные файлы).
Пример
settings.py
INSTALLED_APPS = [
...
"ckeditor",
"ckeditor_uploader",
...
]
STATIC_URL = "static/"
STATIC_ROOT = Path(BASE_DIR, "static")
MEDIA_URL = "media/"
MEDIA_ROOT = Path(BASE_DIR, "media")
CKEDITOR_UPLOAD_PATH = "uploads/"
# configs
# ...
urls.py
urlpatterns = [
...
path("ckeditor/", include("ckeditor_uploader.urls")),
...
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py
from ckeditor.fields import RichTextField
from ckeditor_uploader.fields import RichTextUploadingField
class SomeModel(models.Model):
content = RichTextField(
config_name="config_1",
verbose_name=_("Content")
)
cmd
python manage.py collectstatic
Может у кого случится тоже самое, мне помогло следующее:
- удалить папку с миграциями
python manage.py makemigrations
python manage.py migrate
killall -9 apache2
Обновляем страницу, все работает.