Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 06.08.2023
Сообщений: 1

Не могу понять в чем проблема c установкой редактора текста на сайт

06.08.2023, 23:36. Показов 750. Ответов 0

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста. Не могу понять в чем проблема. Не логично.

Когда из settings я удаляю строку CKEDITOR_BASEPATH = '/static/ckeditor/' у меня отображается CKEDITOR с некоторыми функциями (хоть и не со всеми что мне нужны) но стоит мне добавить строку KEDITOR_BASEPATH = '/static/ckeditor/' и CKEDITOR перестает отображаться на странице.
Кто то может сказать: удали просто строку и пусть отображается. Но. Во первых, мне не нравится что работает не логично и не правильно. Во вторых, static\ckeditor\build\ckeditor.js я разместил для того, что бы были функции(Разные шрифты, размеры и пр.) которых сейчас нету.
дальше код в моих html, views,models…

у меня ckeditor в:
D:\Сайт\ ..\static\ckeditor\package.json
D:\Сайт\... \static\ckeditor\webpack.config.js
D:\Сайт\ …\static\ckeditor\src
D:\Сайт\... \static\ckeditor\sample
D:\Сайт\... \static\ckeditor\build
D:\Сайт\... \static\ckeditor\build\ckeditor.js

У меня в settings:


INSTALLED_APPS = [
'main',
'catalog.apps.CatalogConfig',
'users',
'ckeditor',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'dal',
'dal_select2',
'widget_tweaks',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.apple',
'allauth.socialaccount.providers.faceboo k',
'allauth.socialaccount.providers.google' ,
'django.contrib.sites',
'debug_toolbar',

]

STATIC_URL = '/static/'

STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'catalog', 'static'),
os.path.join(BASE_DIR, 'main', 'static'),
]

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

# Media files
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

CKEDITOR_UPLOAD_PATH = 'uploads/' #путь для загрузки файлов

CKEDITOR_BASEPATH = '/static/catalog/ckeditor/' #путь к статическим файлам CKEditor
В html:

{% extends 'main/base.html' %}

{% load static %}

{% block content %}
<script src="{% static 'ckeditor/build/ckeditor.js' %}"></script>
<div id="editor"></div>

<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form.media }}
<div class="form-group">
{{ form.title.label_tag }}
{{ form.title }}
</div>
<div class="form-group">
{{ form.content.label_tag }}
{{ form.content }}
</div>
<div class="form-group">
{{ form.file.label_tag }}
{{ form.file }}
</div>


<button type="submit">Загрузить</button>

</form>

{% endblock %}
views:


class ChapterDetail(DetailView):
model = Chapter

template_name = 'catalog/chapter_detail.html'
context_object_name = 'chapter'

def get_object(self, queryset=None):
if queryset is None:
queryset = self.get_queryset()

book_slug = self.kwargs.get('book_slug')
chapter_slug = self.kwargs.get('chapter_slug')

if book_slug is not None and chapter_slug is not None:
return get_object_or_404(queryset, book__slug=book_slug, slug=chapter_slug)

raise AttributeError("Book slug and chapter slug expected in the URL pattern")

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['form'] = CommentForm() # add this line
return context


class ChapterCreate(LoginRequiredMixin, UserPassesTestMixin, CreateView):
model = Chapter
form_class = ChapterForm
template_name = 'catalog/chapter_form.html'

def form_valid(self, form):
book_slug = self.kwargs['book_slug']
book = get_object_or_404(Book, slug=book_slug)
form.instance.book = book

# If a file was uploaded
if form.instance.file:
try:
# Read the file and put its content into the 'content' field
file_content = form.instance.file.read().decode('utf-8')
form.instance.content = file_content
except Exception as e:
messages.error(self.request, f"Error reading file: {str(e)}")
return super().form_invalid(form)
elif not form.instance.content:
messages.error(self.request, "You must provide chapter content or upload a file.")
return super().form_invalid(form)

return super().form_valid(form)

def test_func(self):
# test_func проверяет, выполняется ли условие для данного пользователя
# Если пользователь в группе 'Перекладач', он может создать главу

return self.request.user.groups.filter(name='Пе рекладач').exists()

def get_success_url(self):
book_slug = self.object.book.slug # здесь мы получаем slug из созданной главы
chapter_slug = self.object.slug
return reverse('catalog:chapter_detail', kwargs={'book_slug': book_slug, 'chapter_slug': chapter_slug})
forms:

class ChapterForm(forms.ModelForm):

content = forms.CharField(widget=CKEditorWidget())

class Meta:
model = Chapter
fields = ['title', 'content', 'file']

help_texts = {
'file': 'You can upload a text file instead of typing in the content.',
}

models:
class Chapter(models.Model):
book = models.ForeignKey('catalog.Book', on_delete=models.CASCADE, related_name='book_chapters')
title = models.CharField(max_length=255)
content = RichTextField(config_name='extends', blank=True, null=True)
file = models.FileField(upload_to='chapters/', blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
slug = models.SlugField(blank=False, null=False)

def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.title)
super().save(*args, **kwargs)

urls:
from django.contrib import admin
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main.urls')),
path('catalog/', include(('catalog.urls', 'catalog'), namespace='catalog')),
path('users/', include(('users.urls', 'users'), namespace='users')),
path('ckeditor/', include('ckeditor_uploader.urls')) #текстовый редактор CKEditor
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

if settings.DEBUG:
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2023, 23:36
Ответы с готовыми решениями:

Выдает ошибку, а я не могу понять в чем проблема. В чем проблема, скажите пожалуйста!
dx=0.0005; epsillon=0.00002; i=0; for x= 0:0.0005:3 i=i+1; if x&lt;1 y (i)=-1; elseif x&lt;2 S=0; ...

Проблема с кодом. Выдает ошибку, я не могу понять в чем проблема
Работаю первый раз с Maple. Установлен версии 2015 года. Выдает ошибку я не могу понять в чем проблема Вот код: restart: ...

не могу понять в чем проблема.
объясните, следующее: kol: real; rur: real; begin kol:= strtofloat(edit1.Text); rur:= kol*43.50; Label2.Caption:= 'na...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.08.2023, 23:36
Помогаю со студенческими работами здесь

Не могу понять в чем проблема
import java.awt.*; public class Star implements DrawableObject { private double x0, y0, size; public Star(double x0,...

Не могу понять в чем проблема
Поставил на ноут винду 7 и после этого у меня появилась следующая проблема. Сначала у меня появлялся черный экран и какой-то скрежет...

Не могу понять в чем проблема
#include &lt;iostream&gt; using namespace std; int main() { int a, b, c; cin &gt;&gt; a &gt;&gt; b &gt;&gt; c; if (a &lt;= b &lt;= c){ cout &lt;&lt;...

Не могу понять в чем проблема
Здраствуйте , есть у меня код , не могу понять почему не работает строка куда запысиваеться название файла. &lt;form...

Не могу понять в чем проблема
Всем здравствуйте, не могу понять в чем проблема. Собственно: играю в игрушки и последнее время стали появляться &quot;потери...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru