django комментирует, почему для поля is_public установлено значение false - PullRequest
0 голосов
/ 06 августа 2010

Я использую систему комментариев django, и все работает нормально, за исключением того, что комментарии добавляются в таблицу, а для is_public установлено значение false.

Кто-нибудь знает, почему это так и как я могу это исправить, т.е. установите их как true

edit, вот мой код:

{% load comments %}

<ul>
{% get_comment_list for entry as comment_list %}
{% for c in comment_list %}
<li>{{c.comment|safe|linebreaksbr}} - {{c.user_name}}, <span>left {{ c.submit_date|timesince }} ago)</span></li>
{% empty %}
<li>
   No comments have been added
</li>
{% endfor %}
</ul>

{% get_comment_form for entry as form %}

<form action="{% comment_form_target %}" method="POST">
    {{ form.content_type }}
    {{ form.object_pk }}
    {{ form.timestamp }}
    {{ form.security_hash }}
    <p style="display:none">
      {{ form.honeypot }}
    </p>
    <input type="hidden" name="next" value="/public/blog/post/{{entry.slug}}/" />
            <div class="contentSectionTitleWhite">
                LEAVE COMMENT
            </div>
            <div class="postLeaveReplayContainer">
                <!-- NAME --><span class="commonControlLabel">Your name:</span>&nbsp;<span class="commonControlLabelItalic">(required)</span>
                <span id="postNameErrorMsg" class="commonControlErrorMsg"></span>
                <br/>
                <input class="commonInput" type="text" id="id_name" name="name" />
                <br/>
                <!-- EMAIL --><span class="commonControlLabel">Your email:</span>&nbsp; <span class="commonControlLabelItalic">(required, will not be published)</span>
                <span id="postEmailErrorMsg" class="commonControlErrorMsg"></span>
                <br/>
                <input class="commonInput" type="text" id="id_email" name="email" />
                <br/>
                <!-- MESSAGE --><span class="commonControlLabel">Message:</span>&nbsp;<span class="commonControlLabelItalic">(required)</span>
                <span id="postMessageErrorMsg" class="commonControlErrorMsg"></span>
                <textarea class="commonTextarea" rows="20" cols="20" id="id_comment" name="comment">
                </textarea>
                <br/>
                <!-- SEND BUTTON --><input type="submit" value="Submit" id="postSendButton" class="readViewMoreBtn">

        </form>

Ответы [ 2 ]

1 голос
/ 19 августа 2010

Чтобы заставить это работать, я добавил следующий код в мою модель

def moderate_comment(sender, instance, **kwargs):
    if not instance.id:
        instance.is_public = True

signals.pre_save.connect(moderate_comment, sender=Comment)
0 голосов
/ 06 августа 2010

странно, потому что (по крайней мере, в Django 1.2) по умолчанию установлено значение True:

is_public   = models.BooleanField(_('is public'), default=True,
                help_text=_('Uncheck this box to make the comment effectively ' \
                            'disappear from the site.'))

Вы уверены, что не устанавливаете эксплозию значение False в любом виде самостоятельно?

Или вы использовали Общий модерирование комментариев ?Возможно, используется автоматическая модерация .Он устанавливает в поле is_public новых комментариев значение False перед их сохранением (во избежание спама)

...