|
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
|
|
| 06.08.2023, 23:36 | |
|
Ответы с готовыми решениями:
0
Выдает ошибку, а я не могу понять в чем проблема. В чем проблема, скажите пожалуйста! Проблема с кодом. Выдает ошибку, я не могу понять в чем проблема не могу понять в чем проблема. |
| 06.08.2023, 23:36 | |
|
Помогаю со студенческими работами здесь
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.
Задача: уведомлять пользователя, если. . .
|