Я новичок в использовании Django.И я хотел бы настроить редактор TinyMCE для себя.Я скачал его и добавил в проект как библиотеку третьей части, не устанавливая его через pip.Как вы знаете, в TinyMCE нет бесплатного локального загрузчика файлов.И я хотел бы сделать 3 вещи: локальный загрузчик изображений, локальный загрузчик аудио / видео и локальный загрузчик файлов (с любым расширением (.pdf, .c, .cpp), это похоже на то, как выдобавить файл в конце поста, чтобы пользователи могли его скачать).И во время реализации у меня возникли следующие проблемы.
Я реализовал локальный загрузчик изображений с помощью TinyMCE file_picker_callback (), и все работает отлично.Я могу загружать и редактировать фотографии локально, и все это отображается в шаблоне просмотра страницы.Путь каждого изображения записывается в поле textarea в MySQL DB как атрибут src.Должно ли каждое изображение загружаться (копироваться) в папку MEDIA сайта или в отдельное поле в БД MySQL.И как это можно реализовать, как написать и вызвать обработчик python в js-файле?
И я до сих пор не скачиваю аудио / видео файлы.Кажется для этого в js-файле, после нажатия кнопки необходимо обернуть их в соответствующие теги аудио / видео HTML5.Затем, как и изображения, скопируйте в базу данных или папку «Медиа».Я также не знаю, как написать обработчик Python и вызвать его в js.
Для загрузки файлов я сделал свой собственный плагин и добавил его в TinyMCE.В плагине я создал элемент ввода и остановился на этом.
Теперь я страдаю от этого в течение месяца, но я действительно хочу это сделать.Поскольку, сделав один полнофункциональный текстовый редактор, вы можете использовать его много раз в других проектах.И я думаю, что это нужно многим людям.Если есть заинтересованность, то мы могли бы реализовать это вместе.В интернете есть php-обработчики.Но обработчиков Python для этой цели я не нашел.Любая помощь и советы приветствуются.Я использую Django 2.0.8 и python 3.6.Редактор находится в административной панели.
Мои модели.py:
class Post(models.Model):
title = models.CharField(max_length=150)
slug = models.SlugField(unique=True)
description = models.TextField()
content = models.TextField()
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
tags = TaggableManager(blank=True)
author = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, on_delete=models.CASCADE, related_name="post_author")
class Meta:
ordering = ["-created", "-updated"]
admin.py:
class PostModelAdmin(admin.ModelAdmin):
list_display = ["title", "updated", "created"]
list_display_links = ["title"]
list_filter = ["created", "tags"]
search_fields = ["title", "content",]
form = MyTextForm
class Meta:
model = Post
class Media:
js = ('js/tinymce/tinymce.js', 'js/init-tinymce.js',
'//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js',)
admin.site.register(Post, PostModelAdmin)
forms.py
class MyTextForm(forms.ModelForm):
class Meta:
fields = '__all__'
model = Post
widgets = {
'content': forms.Textarea(attrs={'class': 'tinymce', 'label' : 'Content'}),
}
И в изображениях БД, хранящихся как (в поле содержимого):
<p><img src="data:image/jpeg;base64,/9j/4AAQSkZJRgH/2Q==" alt="" width="439" height="604"/></p>