我写了一个小评论应用程序 form.py的一部分:
class TinyCommentForm(CommentSecurityForm):
comment = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
models.py的一部分:
class TinyComment(BaseCommentAbstractModel):
comment = tinymce_models.HTMLField()
使用TinyCommentForm的模板的一部分:
{% if user.is_authenticated %}
{% get_comment_form for object as form %}
<form action="{% comment_form_target %}" method="POST">
{{ form.comment }}
{{ form.content_type }}
{{ form.object_pk }}
{{ form.timestamp }}
{{ form.security_hash }}
<input type="submit" name="post" class="submit-post" value="Add" />
</form>
{%endif%}
在这里,我可以添加和保存注释,但只有没有tinymce编辑器,并且工作正常。
如果我在模板字段中添加我的评论表单:{{form.media}}
tinymce编辑器出现,但如果我在那里写东西,我的POST表单似乎没有内容,说我需要写一些内容。
即使我通过我的视图将TinyCommentForm渲染为此模板的“表单”,<{1}}到{{form.media}}
扇区也不起作用。
所以我尝试手动导入JS并添加到<HEAD>
部分(使用Django 1.3):
<HEAD>
然后我检查src链接是否正确。
接下来我在那里添加第二行:
<script type="text/javascript" src="{{STATIC_URL}}js/tiny_mce/tiny_mce.js"></script>
然后我使用JS代码创建<script type="text/javascript" src="{% url tinymce-js "NAME" %}"></script>
并将包含此文件夹的内容添加到TEMPLATE_DIRS。我的网址包括tiny_mce网址。但仍然没有结果。
有人能照亮我一点吗?
答案 0 :(得分:1)
让它运转良好。答案:
{% if user.is_authenticated %}
{% get_comment_form for object as form %}
<form action="{% comment_form_target %}" method="POST">
{{ form.media }} <!-- This is needed -->
{{ form.comment }}
{{ form.content_type }}
{{ form.object_pk }}
{{ form.timestamp }}
{{ form.security_hash }}
<input type="submit" name="post" class="submit-post" value="Add" />
</form>
{%endif%}
任何JS部分都是不必要的。 但是魔鬼生活在我的forms.py中,应该是这样的:
class TinyCommentForm(CommentSecurityForm):
comment = forms.CharField(widget=forms.Texarea)
现在Everythigng正常工作。
修改:我认为我的评论表单需要使用widget=forms.Texarea
的原因是我的texareas.js有mode : "textareas"
。如果我错了,请纠正我。