На сервере 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

Обновляем страницу, все работает.

Вернуться на верх