2

我想在我的 Django 项目中使用 TinyMCE,在完成所有必要的设置后,当我访问页面时,表单只呈现普通的 django 表单,而不是 TinyMCE 富文本表单。下面是我的设置。

我将tinymce文件夹复制到媒体文件夹:

   C:/Python27/Scripts/nate/media/js/tiny_mce

设置.py

  TINYMCE_JS_URL = '/media/js/tiny_mce/tiny_mce.js/'

  TINYMCE_DEFAULT_CONFIG = {
       'plugins': "table,spellchecker,paste,searchreplace",
       'theme': "advanced",
       'cleanup_on_startup': True,
       'custom_undo_redo_levels': 10,

}

  TINYMCE_SPELLCHECKER = True
  TINYMCE_COMPRESSOR = True

网址.py

    (r'^tinymce/', include('tinymce.urls')),

楷模

    class Finmall(models.Model):
       user=models.ForeignKey(User)
       name=models.CharField(max_length=250, unique=True)
       content1 = models.TextField()
       content2 = models.TextField()

       def __unicode__(self):
           return self.user

模板

    <head>
     <script type="text/javascript" src="{{ MEDIA_URL }}/js/tiny_mce/tiny_mce.js"></script>
    </script>
    </head>

   {% block content %}

    <div id="postcribbody" class="wrapper">     

     <p class="list">You can make it</p>
      <form enctype="multipart/form-data"  form action="." method="POST">
          {% csrf_token %}
             {{ FinmallForm.as_p }}
  <input type="submit"  class="cribput" value="Submit"/>
      </form>
      </div>
   {% endblock %}

如何让 content1 和 content2 显示 TinyMCE 富文本格式?

4

3 回答 3

3

文档中的一个示例:

from django import forms
from tinymce.widgets import TinyMCE

class FinmallForm(forms.ModelForm):
    ...
    content = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
    ...

    class Meta:
        model = Finmall
于 2012-12-28T14:58:12.513 回答
1

问题是您将表单显示为 Django 表单。

富编辑文本字段将是 Django 不会创建的 JS 事物。django.form 功能将创建一个 HTML 元素。

我建议手动将丰富的编辑放入模板中。只要您为丰富的编辑提供与 Django 表单元素相同的“名称”,您就可以在返回的 POST 中使用它。

编辑:您在呈现表单时发布 models.TextField() 。这将在表单中生成一个元素。此表单将只有默认属性。

我不是 100% 确定 TinyMCE 是如何工作的,但您需要通过“id”或“name”值将其绑定到该元素,或者只需将表单代码放入模板中。

我自己不使用 Django 来呈现我自己在模板中创建的表单,并给它们赋予 Django 赋予它们的相同名称。

查看渲染页面的源代码并查看表单的外观。然后用 TinyMCE 建立一个测试页面,让它工作,看看元素之间的区别。

:)

于 2012-12-28T14:42:46.563 回答
0

尝试把上面的表格,{{ form.media }}{{ FinmallForm.media }}在你的模板中

    <head>
     <script type="text/javascript" src="{{ MEDIA_URL }}/js/tiny_mce/tiny_mce.js"></script>
    </script>
    </head>

   {% block content %}

    <div id="postcribbody" class="wrapper">     

     <p class="list">You can make it</p>
      {{ FinmallForm.media }}
      <form enctype="multipart/form-data"  form action="." method="POST">
          {% csrf_token %}
             {{ FinmallForm.as_p }}
  <input type="submit"  class="cribput" value="Submit"/>
      </form>
      </div>
   {% endblock %}
于 2020-04-23T18:34:31.747 回答