Django Ckeditor не будет отображаться в форме - PullRequest
0 голосов
/ 28 октября 2018

Выполнял каждый шаг, упомянутый в https://django -ckeditor.readthedocs.io / en / latest / , но при просмотре формы я не получаю никакого редактора.Также я запустил «python manage.py collectstatic»

settings.py, специфичный для ckeditor.

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

STATIC_URL = '/static/'    
STATIC_ROOT = os.path.join(BASE_DIR,"static")
CKEDITOR_BASEPATH = STATIC_ROOT+"/ckeditor/ckeditor"

CKEDITOR_UPLOAD_PATH = "ck_uploads/"
CKEDITOR_IMAGE_BACKEND = "pillow"

MEDIA_URL = STATIC_URL+'media/'

MEDIA_ROOT = os.path.join(STATIC_ROOT,'media')

urls.py

url(r'^ckeditor/', include('ckeditor_uploader.urls')),

forms.py

from ckeditor.widgets import CKEditorWidget

class BlogPostForm(forms.ModelForm):
    class Meta():
        model = BlogPost
        fields = ('title','brief','content','accept_comments','is_public')

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

Никаких предложений до сих пор не работало (включая перемещение определения виджета из Meta).

Я настраиваю рендеринг форм, и так поле выводится в форме.

{{ form.details }}

Также визуализация всей формы с использованием {{ form.as_p }} не имела никакого значения.

Это то, что показывает поле HTML, когда я использую инструменты разработчика Chrome -> Элементы.

<textarea cols="40" id="id_details" name="details" rows="10" required="" data-processed="0" data-config="{&quot;skin&quot;: &quot;moono-lisa&quot;, &quot;toolbar_Basic&quot;: [[&quot;Source&quot;, &quot;-&quot;, &quot;Bold&quot;, &quot;Italic&quot;]], &quot;toolbar_Full&quot;: [[&quot;Styles&quot;, &quot;Format&quot;, &quot;Bold&quot;, &quot;Italic&quot;, &quot;Underline&quot;, &quot;Strike&quot;, &quot;SpellChecker&quot;, &quot;Undo&quot;, &quot;Redo&quot;], [&quot;Link&quot;, &quot;Unlink&quot;, &quot;Anchor&quot;], [&quot;Image&quot;, &quot;Flash&quot;, &quot;Table&quot;, &quot;HorizontalRule&quot;], [&quot;TextColor&quot;, &quot;BGColor&quot;], [&quot;Smiley&quot;, &quot;SpecialChar&quot;], [&quot;Source&quot;]], &quot;toolbar&quot;: &quot;Custom&quot;, &quot;height&quot;: 291, &quot;width&quot;: 835, &quot;filebrowserWindowWidth&quot;: 940, &quot;filebrowserWindowHeight&quot;: 725, &quot;toolbar_Custom&quot;: [[&quot;Bold&quot;, &quot;Italic&quot;, &quot;Underline&quot;], [&quot;NumberedList&quot;, &quot;BulletedList&quot;, &quot;-&quot;, &quot;Outdent&quot;, &quot;Indent&quot;, &quot;-&quot;, &quot;JustifyLeft&quot;, &quot;JustifyCenter&quot;, &quot;JustifyRight&quot;, &quot;JustifyBlock&quot;], [&quot;Link&quot;, &quot;Unlink&quot;], [&quot;RemoveFormat&quot;, &quot;Source&quot;]], &quot;language&quot;: &quot;en-us&quot;}" data-external-plugin-resources="[]" data-id="id_details" data-type="ckeditortype"></textarea>

1 Ответ

0 голосов
/ 19 декабря 2018

Вы ошиблись в следующих двух строках.

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

Они должны быть вне Мета-класса, поэтому это будет следующим.

class BlogPostForm(forms.ModelForm):

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

    class Meta():
        model = BlogPost
        fields = ('title','brief','content','accept_comments','is_public')
...