我想在我的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格式?
[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
问题是您将表单显示为Django表单。
富文本编辑字段将是Django将不会创建的JS东西。 django.form功能将创建一个HTML元素。
我建议手动将丰富的编辑内容放到模板中。只要您给丰富的编辑提供与Django表单元素相同的“名称”,您就可以在返回的POST中使用它。
编辑:呈现表单时,您正在发布models.TextField()。这将生成表单中的元素。此表单仅具有默认属性。
我不确定100%TinyMCE的工作原理,但是您需要通过“ id”或“ name”值将其绑定到该元素,或者只是将表单代码放入模板中。
我自己不使用Django渲染我自己在模板中创建的表单并给它们提供与Django赋予它们相同的名称。
查看呈现页面的源代码,然后查看表单外观。然后使用TinyMCE设置一个测试页,使其运行并查看元素之间的差异。
:)
尝试在表格{{ 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 %}