Tiny_mce + комментарии в Django = проблема - PullRequest
0 голосов
/ 07 мая 2011

Я написал небольшое приложение для комментариев.
Часть forms.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, кажется, без содержания, говоря, что мне нужно что-то записать в нее.

Предоставление {{form.media}} в <HEAD> сектор не работает, даже если явизуализировать через мой взгляд TinyCommentForm как «форму» для этого шаблона.

Итак, я попытался импортировать JS более вручную, и я добавил в раздел <HEAD> (используя Django 1.3):

<script type="text/javascript" src="{{STATIC_URL}}js/tiny_mce/tiny_mce.js"></script>

Затем я проверяю, что ссылка src и она правильная.

Итак, я добавляю туда вторую строку:

<script type="text/javascript" src="{% url tinymce-js "NAME" %}"></script>

Затем я создаю NAME/tinymce_textareas.js с кодом JS и добавляю эту папку.до TEMPLATE_DIRS.Мои URL-адреса, включая URL-адреса tiny_mce.Но все равно безрезультатно.

Кто-нибудь может меня немного осветить?

1 Ответ

1 голос
/ 08 мая 2011

Получилось хорошо. Ответ:

{% 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)

И теперь все работает правильно.

Редактировать: Причина, по которой моей форме комментариев нужно использовать widget=forms.Texarea, заключается в том, что мой texareas.js имеет mode : "textareas". Если я ошибаюсь, поправьте меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...