Ckeditor не работает django

Не удается заставить CKEditor работать в Django с zinnia-wysiwyg-ckeditor

Прежде всего, извините, мой английский действительно плохой, но я постараюсь объяснить, насколько смогу.

Я работаю в блоге с django-blog-zinnia , пока что так хорошо. Теперь я пытаюсь интегрировать CKEditor с

Я выполнил шаги в каждой своей документации, и я не могу заставить ее работать.

Я искал и проверял ошибки в консоли, и ничего не было, возможно, что-то упустил бы из виду, потому что также я впервые работаю с Django.

Итак, я сделал это

Я установил zinnia-wysiwyg-ckeditor и django-ckeditor Я добавил приложения в свои settings.py и настроил django-ckeditor

Мой settings.py выглядит так.

В моем urls.py добавлено это.

Я запустил команду управления collectstatic : python manage.py collectstatic

и администратор zinnia мой контент остается таким же, как здесь.

Так как ожидается ожидаемое изменение в ваших моделях администратора, вы запустили python manage.py makemigrations и python manage.py migrate ?

Повторив процесс установки, я бы посоветовал не вмешиваться в ‘zinnia-content’ в конфигурации панели инструментов. Я обнаружил, что даже если я скопировал/вложил его из примера config, это привело к очень тонкой полосе в верхней части поля ввода содержимого, но не панель инструментов (ваш администратор, похоже, использует какой-то пользовательский — и действительно хороший выглядящий — CSS, так что, возможно, это объяснит, почему тонкий серый бар даже не попал на ваш пример).

Я использую это, чтобы получить полную панель инструментов (здесь моя страница » Добавить запись»):

У меня также есть это в моих настройках, в результате чего окно «Обзор сервера» демонстрирует приятные предварительные просмотры изображений, когда я нажимаю на миниатюры изображений, хотя сами миниатюры оказываются как сломанные. Но это не нарушает проект, и я не думаю, что это даже вызывает проблему с эскизами (я считаю, что он фактически несет ответственность за разметку просматриваемых изображений как одного размера при навигации изображений на вашем сервере):

Источник

Не могу заставить плагины CKEditor работать в django

Я пытаюсь получить плагин CKEditor, codesnippet, для работы в admin django, но не могу. CKEditor работает, если я не определяю CKEDIT_CONFIGS в моих settings.py. Он также работает, если вытащить строку «extraPlugins» (и она успешно отрегулирует высоту и ширину, как определено в разделе CKEDITOR_CONFIGS).

CKeditor находится в /static/ckeditor и codenippet находится в /static/ckeditor/plugins/

В моем settings.py

Я также пробовал использовать только «плагины» вместо «extraPlugins» (хотя это и не рекомендуется), но получить тот же результат (который прерывает CKEditor, а файл не отображается вообще в admin).

Заранее благодарим за помощь!

РЕДАКТИРОВАТЬ 11/26/14

ОК, так что это все еще не работает. Я уверен, что проблема в этом (из журнала ошибок nginx)

Этот путь неправильный (ошибочная двойная черная косая черта и дополнительный каталог «ckeditor» ).

Теперь мои settings.py выглядят следующим образом.

Линия дополнительных плагинов — это то, что вызывает ошибку nginx, я понятия не имею, где он получает этот путь.

Ниже приведена более подробная информация, которая может быть полезна.

Это мой полный файл admin.py

Я скопировал следующие строки в файл ckedit.js и перетащил соответствующие папки в папку плагинов.

EDIT 12/1/14

Файл конфигурации Nginx (по запросу)

Полная ошибка nginx:

В моем settings.py

5 ответов

Плагин Code Snippet имеет различные зависимости, каждый из которых имеет подзависимости, то есть:

  • Widget (Линейные утилиты в качестве субзависимость среди других)
  • Dialog (также имеет вспомогательные зависимости)

Мне пришлось как минимум добавить Code Snippet, Widget и Line Utils в путь ckeditor/plugins, чтобы заставить его работать, а также использовать следующий параметр, чтобы кнопка отображалась на панели инструментов.

Итак, как только все ваши зависимостей плагина установлены, он должен работать.

Я боролся с одной и той же проблемой в течение нескольких дней, и, думаю, я нашел обходной путь для этой проблемы.

Как вы уже заметили, он пытается прочитать этот «static/ckeditor/ckeditor/plugins/codesnippet/plugin.js» javascript, но он не может его найти, даже если вы поместили плагин в папку «YOUR_PROJECT_DIR» /статический/CKEditor/CKEditor/плагины». Причина в том, что django-ckeditor не ищет статический каталог в каталоге вашего проекта, он ищет собственный статический каталог по своему пути в сайтах-пакетах. В результате вы можете сделать следующее в качестве обходного пути.

  • Создайте CKEditor своими плагинами (дополнительные плагины, такие как CodeSnippet), используя его Builder, замените плагин CodeSnippet и его зависимости на автономные версии, загруженные отдельно с веб-сайта CKEditor. (Плагины не имеют файла plugin.js в своей папке)
  • Загрузите и распакуйте его, у вас будет папка с именем ‘ckeditor’ с ‘lang’, ‘plugins’ в качестве подпапок
  • Замените весь каталог ‘ckeditor’ в ‘static/ckeditor/ckeditor’ в папке ‘ckeditor’ в папке пакета сайта python. Например, ваш django-ckeditor установлен в «C:\Python27\Lib\site-packages», вы увидите «ckedior», замените папку «static/ckeditor/ckeditor» на свою встроенную папку ckeditor. Или у вас будет virtualenv или что-то еще, вы можете сделать это в своих собственных пакетах сайтов.
  • Добавьте настройки «extraPlugins», как вы уже делали в описании проблемы, и запустите python manage.py runningerver, и вы увидите плагин CodeSnippet в вашем админе.
  • Для 3. вы также можете скопировать всю эту папку «site-packages/ckeditor» в свой PROJECT_DIR и сделать замену.
  • К моим экспериментам добавление или удаление плагинов или внесение изменений в файлы конфигурации в «YOUR_PROJECT_DIR/static/ckeditor» не показывают никаких эффектов, даже если вы удалите весь каталог.
  • Таким образом, я думаю, что есть еще некоторые настройки, которые мы не сделали правильно, например STATIC_URL, STATIC_ROOT или что-то в этом роде. Я не понял, почему, так как я тоже начинаю, и я не видел, что не так с вашими настройками. Я попытаюсь выяснить основную причину и исправить этот ответ, если будет найдено окончательное «Решение». Возможно, автор пакетов «shaunsephton» мог легко понять это и оказать некоторую помощь.: D

Источник

Can’t get CKEditor plugins to work in django

I am trying to get the CKEditor plugin, codesnippet, to work in the django admin but am unable to. CKEditor works if I don’t define any CKEDIT_CONFIGS in my settings.py. It also works if take out the «extraPlugins» line (and it successfully will adjust the height and width as defined in the CKEDITOR_CONFIGS section).

CKeditor is located in /static/ckeditor and codesnippet is in /static/ckeditor/plugins/

In my settings.py

I have also tried using just ‘plugins’ instead of ‘extraPlugins’ (although this not recomended), but get the same result (which is it breaks CKEditor and the filed doesn’t display at all in the admin).

Thanks in advance for your help!

EDIT 11/26/14

OK so this still isn’t working. I am pretty sure the problem is this (from the nginx error log)

That path isn’t right (erroneous double black slash and an extra «ckeditor» directory»).

My settings.py now looks like this.

The Extra Plugins line is what is causing the nginx error, I have no idea where it is getting that path.

Below is more further information that may be helpful.

This is my full admin.py file

I have copied the following lines into my ckedit.js file and dragged over the appropriate folders in the the plugins folder.

EDIT 12/1/14

Nginx config file (as requested)

Full nginx error:

In my settings.py

5 Answers 5

The Code Snippet plugin has various dependencies each of which has sub-dependencies, i.e.:

  • Widget (has Line Utilities as a sub-dependency amongst others)
  • Dialog (also has sub dependencies)

I had to as a minimum add Code Snippet, Widget and Line Utils in the ckeditor/plugins path to get it to work, as well as use the following setting to get the button to show up in the toolbar.

So once all your plugin dependencies are all installed it should work.

I’ve been battling the same problem for days and I guess I found a workaround for this problem.

As you have noticed too, it tries to read this «static/ckeditor/ckeditor/plugins/codesnippet/plugin.js» javascript but it cannot locate it, even if you’ve put the plugin in the folder of «YOUR_PROJECT_DIR/static/ckeditor/ckeditor/plugins». The reason is, django-ckeditor is not searching the static directory in your project directory, it is searching it own static directory in its own path in site-packages. As a result, you may do the following as a workaround.

  1. Build CKEditor with your plugins (extra plugins like CodeSnippet) using its Builder, replace CodeSnippet plugin and its dependencies with the standalone versions downloaded seperately from the CKEditor website. (The plugins do not have plugin.js file in their folder)
  2. Download it and unzip it, you will have a folder named ‘ckeditor’ with ‘lang’, ‘plugins’ as subfolders
  3. Replace the entire ‘ckeditor’ directory in ‘static/ckeditor/ckeditor’ in the folder of ‘ckeditor’ in your python’s site-package folder. For example, your django-ckeditor is installed in «C:\Python27\Lib\site-packages», you’ll see ‘ckedior’, replace the ‘static/ckeditor/ckeditor’ folder with your built ckeditor folder. Or you will have virtualenv or whatever, you may do it in its own site-packages.
  4. Add ‘extraPlugins’ settings as you already did in the problem description, and run python manage.py runserver and you will see ‘CodeSnippet’ plugin in your admin.
  1. For 3., you can also copy this entire «site-packages/ckeditor» folder to your PROJECT_DIR, and make the replacement.
  2. To my experimentation, adding or removing plugins or making changes to the config files in «YOUR_PROJECT_DIR/static/ckeditor» does not show any effects, even if you remove the entire directory.
  3. Thus I guess there are still some settings we didn’t make right, like STATIC_URL, STATIC_ROOT or something. I haven’t figured out why since I am a beginner too and I didn’t see what is wrong with your settings. I’ll try to figure out the root cause and amend this answer if final «Solution» is found. Perhaps the package author ‘shaunsephton’ could easily figure it and lend some help. 😀

Источник

django-ckeditor failing due to template path problem

I just added django-ckeditor to my django project by installing it:

adding it to INSTALLED_APPS , adding the upload path:

run manage.py collecstatic which only added two files, and adding the URLs to my url.py :

I’m not 100% sure if I’m not missing something there.

Then I created a very simple model that looks like this:

When I try to add a new record on the admin tool I get this error:

TemplateDoesNotExist at /admin/core/blogpost/add/

The template loader postmortem looks like this:

The line before the last one is relevant, it’s trying to load ckeditor/widget.html from ckeditor_uploader but widget.html is present in ckeditor , not ckeditor_uploader :

Any ideas what’s going on here?

I also tried turning the field into a RichTextUploadingField , but I’ve got the same error.

5 Answers 5

The problem was that I added ckeditor_uploader and not ckeditor to the installed apps.

Even I faced the same issue. Please follow my steps. it will work for me as well as many of my friends also.

Remember it will also work for production level as i hosted many django application in online.

pip install django-ckeditor

step 1: write inside models.py

step 2: run command python manage.py makemigrations

step 3: run command python manage.py migrate

step 4: write in admin.py

step 4: I added «ckeditor» in installed_apps of settings.py.

step 5: run command python manage.py collectstatic

It will ask you to overrite Existing files and type yes

make sure your directory structure look like

step 6: Copy ckeditor folder in root static folder where your control panel looks for

In my case i have to copy ckditor folder in another called public_html

I coppied ckeditor folder in public_html/static/

Источник

Загрузка Django CKEditor не отображается

Это дубликат браузера изображений Django Ckeditor, который не находит изображения, но я считаю, что ответ неверен (в нем есть явная ошибка с undefined, не говоря уже о недостатке отступов Python).

Я использую Django CKEditor 5.0.3 и Django 1.9.6. Я могу загружать изображения в свой админ, но они отображаются как красный X внутри администратора и не отображаются на моем сайте.

Я все еще немного боюсь с MEDIA_ROOT и еще чего-то, но я думаю, что я прав:

My urls.py , включая мою попытку очистки связанного ответа:

С помощью CKEDITOR_UPLOAD_PATH = ‘uploads/’ django-ckeditor загружает изображение в /media/uploads/ , например:

При использовании сервера Django dev статические файлы обслуживаются по умолчанию, но не медиафайлы, поэтому вы можете заставить сервер их учитывать, приведенная ниже конфигурация URL должна работать.

Отсутствующая функция patterns из старого примера была старой функцией, которую я считаю используемой на Django 1.6 или 1.7.

Используя Django 1.8 с django-ckeditor 5.3.0, я получал те же симптомы, что и выше (загрузка файлов работала, но атрибут src тега был установлен неправильно, что вызвало красную «X» «в превью и сломанных ссылках изображения после публикации).

В моем случае, однако, мне не пришлось ничего менять в urls.py . Моя проблема заключалась в том, что у меня было:

CKEDITOR_UPLOAD_PATH = os.path.join(MEDIA_ROOT, «ckeditor»)

Итак, моя ошибка давала CKEDITOR_UPLOAD_PATH путь, по которому я хотел, чтобы ckeditor загружал (логический, нет?).

Исправление состоит в том, чтобы изменить указанную выше строку на

В ретроспективе я вижу, как это позволяет django-ckeditor использовать MEDIA_ROOT для загрузки и MEDIA_URL для обслуживания. Тем не менее я думал, что кто-то должен сказать это: «Не используйте полный путь при настройке CKEDITOR_UPLOAD_PATH !»

Я надеюсь, что это спасет других в свое время.

Источник

Читайте также:  Как настроить звук телевизора сони бравиа
Оцените статью