2015-01-18 6 views
1

Я пытаюсь создать поле в моей форме, используя django-tinymce без успеха, поскольку он просто отображает обычный CharField в форме. Тестовая форма является частью набора форм, созданного с хрустящими формами Django.Редактор Tinymce, не отображающийся в шаблоне Django

models.py

class test(models.Model) 
    test = models.CharField(max_length=100) 

forms.py

from tinymce.widgets import TinyMCE 


class TestForm(forms.ModelForm): 


    class Meta: 
    test = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30})) 
    model = test 

    def __init__(self, *args, **kwargs): 
    super(TestForm, self).__init__(*args, **kwargs) 
    self.helper = FormHelper() 
    self.helper.form_tag = False 
    self.helper.layout = layout.Layout(
     layout.Fieldset(
      _("Test"), 
      layout.Field("test"), 
      ), 
    ) 

urls.py

urlpatterns = patterns('', 
    # Examples: 
    # url(r'^$', 'tripller.views.home', name='home'), 
    # url(r'^blog/', include('blog.urls')), 
    url(r'^tinymce/', include('tinymce.urls')), 
) 

шаблон

{% load i18n crispy_forms_tags %} 
     <form method="post" action="." enctype="multipart/form-data"> 
      {% csrf_token %} 
      {% crispy form %} 
      {{ formset.management_form }} 
       {{ formset.non_form_errors }} 
       {% for form in formset %} 
        {{ form.id }} 
        <div class="inline {{ formset.prefix }}"> 
         {% crispy form %} 
         {{ form.description.errors }} 
         {{ form.description.label_tag }} 
         {{ form.description }} 
        </div> 
       {% endfor %} 
     </form> 

settings.py

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'ajaxuploader', 
    'crispy_forms', 
    'tinymce', 
) 

TINYMCE_JS_URL = os.path.join(STATIC_ROOT, "js/tiny_mce/tiny_mce.js") 
TINYMCE_JS_ROOT = os.path.join(STATIC_ROOT, "js/tiny_mce") 
TINYMCE_SPELLCHECKER = True 
TINYMCE_COMPRESSOR = True 
TINYMCE_DEFAULT_CONFIG = { 
    'theme': "advanced", 
    'plugins': "spellchecker", 
    'theme_advanced_buttons3_add': "|,spellchecker", 
} 
  1. Является ли это правильный способ задания статических файлов URL, в результате чего все мои JS файлы хранятся в статической папке вместо папке с носителями, как предлагается в документах? Не работает ли CharField из-за неправильных параметров?

  2. Как указать текстовое поле, отображаемое с помощью редактора TinyMCE?

  3. Предполагая, что пользователь завершит редактирование формы через TinyMCE, как я могу отобразить представленные данные в виде html-формы?

ответ

1

Определение поля должно быть на TestForm уровне, а не в TestForm.Meta:

class TestForm(forms.ModelForm): 

    test = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30})) 

    class Meta: 
     model = test 
+0

Ой ... Мой плохо .. Это все еще показывает ту же форму, но поле тест укорачивается, на основе ATTRS указанных в тесте. Редактор не отображается :-( – zan

Смежные вопросы