Django Tinymce不显示RTF格式

问题描述 投票:2回答:3

我想在我的Django项目中使用TinyMCE,进行所有必要的设置后,当我访问页面时,该表单仅呈现常规的django表单,而不呈现TinyMCE富文本格式。以下是我的设置。

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

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

Settings.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

urls.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 RTF格式?

python django django-tinymce
3个回答
2
投票

[Documentation中的示例:

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

1
投票

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

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

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

编辑:呈现表单时,您正在发布models.TextField()。这将生成表单中的元素。此表单仅具有默认属性。

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

我自己不使用Django渲染我自己在模板中创建的表单并给它们提供与Django赋予它们相同的名称。

查看呈现页面的源代码,然后查看表单外观。然后使用TinyMCE设置一个测试页,使其运行并查看元素之间的差异。

:)


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 %}
© www.soinside.com 2019 - 2024. All rights reserved.