1

在 django 应用程序中,目标是在 WYSIWYG 编辑器中编辑电子邮件模板。使用 CKEditor 可以正常工作,但图像只能通过 URL 包含,不能通过上传。

这里提出了一个类似的问题: Django-CKEditor Image Upload

没有涵盖的是使用表单字段而不是模型字段的情况。也没有真正解释接受的解决方案。

当前代码:

from django import forms
from crispy_forms.helper import FormHelper

class EmailConfirmationTemplateForm(forms.Form):
    def __init__(self, *args, **kwargs):
        self.email_template = kwargs.pop('email_template')
        kwargs.setdefault('initial', {})['email_template'] = self.email_template
        super(EmailConfirmationTemplateForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper(self)
        self.fields['email_template'] = forms.CharField(widget=CKEditorWidget())

模板代码:

...
<form>
    {% csrf_token %}
    {% crispy form %}
</form>

设置:

INSTALLED_APPS = [
    ...
    'ckeditor',
    'ckeditor_uploader',
    ...
]

CKEDITOR_UPLOAD_PATH = 'cke-uploads/'
CKEDITOR_IMAGE_BACKEND = 'pillow'

问题是:如何在这个所见即所得的编辑器中上传图片?

版本信息:django 1.8.16,django-ckeditor 5.2.2

4

1 回答 1

1

我不太确定那个 django 版本,但现在 ckeditor 支持使用它的RichTextUploadingField. 因此,将其用于模型非常简单。转到您的app_name/models.py并导入RichTextUploadingField. 然后而不是使用类似的东西:

article_content = models.TextField()

用这个

article_content = models.RichTextUploadingField()
于 2021-03-04T22:26:34.870 回答