![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 06.08.2023
Сообщений: 2
|
![]()
Помогите пожалуйста. Не могу понять в чем проблема. Не логично.
Когда из 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.ap ple', 'allauth.socialaccount.providers.fa cebook', 'allauth.socialaccount.providers.go ogle', '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('u tf-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(nam e='Перекладач').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=CKEditorWidg et()) 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='chapter s/', blank=True, null=True) created_at = models.DateTimeField(auto_now_add=T rue) 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) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу понять в чём проблема | Данила Гонтарь | Python | 3 | 04.04.2020 16:01 |
Не могу понять в чем проблема. | MustafaDzhemadin | Java Мобильная разработка (Android) | 0 | 18.11.2019 22:35 |
Не могу понять в чем проблема | Lecter2009 | БД в Delphi | 7 | 09.09.2010 08:48 |
НЕ могу понять в чем проблема! | KNatalia | Microsoft Office Excel | 2 | 18.08.2009 02:03 |
Не могу понять в чем проблема (код) | diznt | Помощь студентам | 2 | 03.08.2008 10:20 |