CKEditor не отображается с динамически генерируемым полем формы WTFormsPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 CKEditor не отображается с динамически генерируемым полем формы WTForms

Сообщение Anonymous »

Использование WTForms, Flask, CKEditor
У меня есть поле в форме с динамическим количеством записей; их можно как добавлять, так и удалять. Настроить это в WTForms было непросто, и я воспользовался решением, обсуждаемым по этой ссылке. Я плохо знаком с JS, поэтому мне сложно адаптировать эту функцию для создания CKEditorField вместо обычного StringField/.
Приведенный ниже код работает, ничего не работает. «сломан», но RTE не отображается, только обычное текстовое поле. Это заставило меня поверить, что проблема в HTML, а не в файлах Flask, но на всякий случай я включил оба.
Что я пробовал до сих пор:
(1) Маркер StringField в форме ввода заменен на CKEditorField (Forms.py, ниже)
(2) Добавление «class=ckeditor» в возвращаемое текстовое поле и вручную вызывая функции замены CKEditor (хотя в документации говорится, что это включается автоматически) (app.js)
(3) Создание и возврат вызовов CKEditor.config в HTML для каждого вновь сгенерированного поле (в документации предлагается иметь это значение для каждого CKE на странице, а другие места, где я использую CKE ((нединамически создаваемые)) работают с этим на месте) (app.js)(4) Замена возврата вызовом CKEditor.create (я считаю, что здесь, вероятно, и кроется ответ, но он не сработал, и я не могу понять, что еще попробовать ) (app.js/webpage.html)
Также отметим, что другое поле формы — «Планы» — успешно работает с редактором.
Forms.py
class Entry(FlaskForm):
# (1)
# bullet = StringField(validators=[validators.DataRequired()])
bullet = CKEditorField(validators=[validators.DataRequired(), validators.Length(max=1000)])

class MyForm(FlaskForm):
entries = FieldList(FormField(Entry), min_entries=0)
plans = CKEditorField('Plans', [validators.InputRequired(), validators.Length(max=1000)])

app.js
$(document).ready(function() {
// (2)
// These are redundant but not working
CKEDITOR.replaceClass = 'ckeditor';
CKEDITOR.replaceAll( 'ckeditor' );

var addCount = 1;
$("#addNewField").click(function() {
var newInput = $("#entries");
newInput.append(GetDynamicTextBox("", addCount));
$("#entries").append(newInput);
addCount += 1;
listCKE();
});

// (3)
// CKE Documentation says to include a config instruction
// (in the form of) {{ ckeditor.config(name="misc_risks") }}
// This fn is my attempt at returning one of those for each added entry to the HTML
// This doesn't work, just returns raw text printed on the page
function listCKE() {
var items = ``;
for (var i=0; i

Подробнее здесь: https://stackoverflow.com/questions/785 ... form-field
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»