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