1

我正在尝试使用 django-tinymce 在我的表单中设置一个字段的样式,但没有成功,因为它只是在表单中显示一个普通的 CharField。测试表单是使用 Django 清晰表单呈现的表单集的一部分。

模型.py

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

表格.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"),
            ),
      )

网址.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>

设置.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 表单?

4

2 回答 2

2

试着把上面的表格{{ form.media }}

{% load i18n crispy_forms_tags %}
        {{ form.media }}
        <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>
于 2020-04-23T18:01:46.007 回答
1

字段定义应该在TestForm级别上,而不是在TestForm.Meta

class TestForm(forms.ModelForm):

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

    class Meta:
        model = test
于 2015-01-18T10:50:02.393 回答