Django中的Tiny_mce +注释=问题

时间:2011-05-07 15:39:38

标签: django comments tinymce

我写了一个小评论应用程序 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网址。但仍然没有结果。

有人能照亮我一点吗?

1 个答案:

答案 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"。如果我错了,请纠正我。