Задать вопрос

Как вывести CKeditor в форму в Django?

Всем привет.

Можете подсказать логику, как можно вывести CKeditor в шаблон в форму? Делаю по их мануалу, но редактор не появляется в шаблоне, только в админке. Мне кажется, что я что-то не понимаю и пропускаю.

Что я делаю:

from django import forms
from ckeditor.widgets import CKEditorWidget

class Topic_Form(forms.Form):
    topic_title = forms.CharField(label='Заголовок темы')    
    topic_text = forms.CharField(widget=CKEditorWidget, label='Ваш вопрос')


Вью

def forum_new_topic(request, topic_id):

    form = Topic_Form(request.POST)

    forum_category = str(topic_id)

    context = {
        "forum_category" : forum_category,
        "form" : form,
    }
    return render(request, 'faceset/forum_new_topiс.html', context)


Шаблон:

<form action="/#" method="post">
    {% csrf_token %}    
    {{ form.topic_title.label_tag }}
    {{ form.topic_title }}
    {{ form.topic_text.label_tag }}
    {{ form.topic_text.media }}                                
    <input type="submit" class="expanded button" value="ОПУБЛИКОВАТЬ">
</form>


И не работает.

Я что-то не так делаю?

##############

Минимальный код страницу, который показывает редактор. Вот так вот не показывает:

{% load staticfiles %}
{% load banner %}

<!doctype html>
<!--suppress ALL -->
<html class="no-js" lang="ru">
<head>
</head>
<body>



<div class="row">

    <form action="/#" method="post">
        {% csrf_token %}
        {{ form.media }}

        <input type="hidden" name="category" value="{{ forum_category }}">
        <input type="submit" class="expanded button" value="ОПУБЛИКОВАТЬ">
    </form>

</div>


</body>
</html>


Добавляем так и работает.

{{ form.media }}
{{ form.as_p }} +++
  • Вопрос задан
  • 2128 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@Keofaste
Forms.py:
from ckeditor.widgets import CKEditorWidget
from django import forms


class PostEditForm(forms.Form):
    content = forms.CharField(widget=CKEditorWidget, label='')


В шаблоне:
<form ...>
    {{ post_form.media }}
    ...
</form>


views.py:
def view(request):

    post_form= PostEditForm(request.POST)

    context = {
        "post_form" : post_form,
    }
    return render(request, 'template.html', context)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы