Django-TinyMCE с несколькими формами

Я пытаюсь создать одну HTML-страницу с несколькими экземплярами редакторов TinyMCE. Количество редакторов зависит от запроса; поэтому я не могу перечислить их и инициализировать их индивидуально. Вот мой код:

views.py:

from tinymce.widgets import TinyMCE class ThreadForm(forms.Form): subject = forms.CharField(max_length=300, widget=forms.TextInput(attrs={'size':'100'})) body = forms.CharField(widget=TinyMCE()) class MessageForm(forms.Form): thread_pk = forms.IntegerField() body = forms.CharField(widget=TinyMCE()) 

urls.py:

 urlpatterns = patterns('', ... url(r'^tinymce/', include('tinymce.urls')), ) 

settings.py:

 INSTALLED_APPS = ( ... 'tinymce', ) ... TINYMCE_DEFAULT_CONFIG = { 'selector': 'textarea', 'theme': 'advanced', 'width': 600, 'height': 300, 'theme_advanced_toolbar_location': 'top', 'theme_advanced_buttons1': 'bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,outdent,indent,hr,|,undo,redo', 'theme_advanced_buttons2': 'cut,copy,paste,pastetext,pasteword,|,search,replace,|,link,unlink,charmap,|,visualaid,table,|,blockquote,sub,sup,|,preview,code,emotions,image', 'theme_advanced_buttons3': '', 'plugins': 'paste,table,spellchecker,searchreplace,emotions', 'theme_advanced_resizing': True, } 

member_forums.html:

 ... {% block headers %} {{ thread_form.media }} {% endblock %} ... <table id="new_thread_table"> {{ thread_form.as_table }} </table> ... {% for message_form in message_forms %} <table class="new_message_table"> {{ message_form.as_table }} </table> ... {% endfor %} 

Существует один ThreadForm в шаблоне и несколько MessageForms.

Когда я комментирую MessageForms в HTML, ThreadForm, похоже, работает, но когда я раскомментирую их, ThreadForm загружается с помощью скина TinyMCE, который не обновляется (добавление текста не приводит к тому, что кнопка отмены включена, даже если она ), и когда я отправляю форму, запись тела для формы отсутствует, что приводит к form.is_valid .

У меня есть только {{ thread_form.media }} в заголовке шаблона и ничего для MessageForms. Итерация через:

 {% for message_form in message_forms %} {{ message_form.media }} {% endfor %} 

тоже не приносил пользы.

После некоторых исследований появляется TinyMCE, который инициализируется слишком много раз, когда загружаются MessageForms, в результате чего данные теряются при отправке формы (EDIT в верхнем ответе на: TinyMCE с Django: «Это поле обязательно» )

Я теряюсь на том, как заставить это работать. Любая помощь или указатели будут оценены.

    2 Solutions collect form web for “Django-TinyMCE с несколькими формами”

    Удален Django-TinyMCE и начал использовать TinyMCE 4.0.21. Теперь он работает великолепно.

    views.py:

     ... class ThreadForm(forms.Form): subject = forms.CharField(max_length=300, widget=forms.TextInput(attrs={'size':'100'})) body = forms.CharField(widget=forms.Textarea(attrs={'class':'thread'})) ... 

    member_forums.html:

     ... {% block headers %} <script type="text/javascript" src="{% static 'tinymce/tinymce.min.js' %}"></script> <script type="text/javascript" src="{% static 'tinymce/threads.js' %}"></script> {% endblock %} {% block content %} ... <form id="new_thread_form" method="post" action=""> {% csrf_token %} <table id="new_thread_table"> {{ thread_form.as_table }} </table> </form> ... <form class="new_message_form" method="post" action=""> {% csrf_token %} {% for message_form in message_forms %} {{ message_form.thread_pk }} <textarea class="message" name="body"></textarea> {% endfor %} ... {% endblock %} 

    threads.js:

     tinyMCE.init({ selector: "textarea.thread", theme: "modern", ... }); tinyMCE.init({ selector: "textarea.message", theme: "modern", ... }); 

    TinyMCE использует id для назначения того, что textarea должно быть TinyMCE, и идентификаторы должны быть уникальными в HTML. Поскольку мои тела назывались телом, форма Django's .as_table показывала их с одинаковым идентификатором. Когда TinyMCE попытался назначить редактор идентификатору, он потерпел неудачу, когда достиг второго поля с тем же идентификатором. Аналогичная проблема:

    TinyMCE не работает при загрузке двух текстовых полей

    Я изменил MessageForm.body на MessageForm.body1, и это заставило ThreadForm TinyMCE работать как шарм. Теперь мне нужно выполнить итерацию и изменить идентификатор каждого MessageForm. Но должно быть лучшее решение. TinyMCE должен иметь возможность отображать все текстовые поля. Может быть, вообще удалить ids?

     
    Interesting Posts for Van-Lav

    Измените кодировку «Quoted-printable» на «utf-8»

    Преобразование данных JSON из pandas в определенную схему / формат JSON в python

    Facebook webhook делает несколько вызовов для одного и того же сообщения?

    Установленный скриптом CLI скрипт setup.py Python не позволяет импортировать тот же модуль

    Python печатает строки unicode в массивах как символы, а не кодовые точки

    Использование Python для запуска браузера (Chromium) и изменения URL-адреса

    Если вы всегда предпочитаете xrange () по диапазону ()?

    Существует ли пифонический способ пропустить декорирование по методу подкласса?

    Завершение программы в середине

    Запустить отчет jasper (созданный с помощью iReport) изнутри python без jasperserver?

    Как обнаружить, что код Python выполняется через отладчик?

    Не удалось получить версию API твита – Twython

    Насколько эффективна максимальная функция Python

    PyRun_String прекращает отправку результата в stdout после любой ошибки

    Попытка получить простой пример Neras сети Keras для работы

    Python - лучший язык программирования в мире.