=================================== コメントアプリケーションのシグナル =================================== :revision-up-to: 17812 (1.4) .. module:: django.contrib.comments.signals :synopsis: コメントモジュールから送信されるシグナル コメントアプリケーションは、コメントのモデレーションやそれに類する処理を行 えるよう、 :doc:`シグナル ` をいくつか定義しています。シグ ナルハンドラの登録方法や受信方法は :doc:`シグナルの解説 ` を参照してください。 comment_will_be_posted ====================== .. data:: django.contrib.comments.signals.comment_will_be_posted :module: コメントフォームデータのチェックが済み、フォームが提出されて、コメントが保 存される直前に送信されます。このシグナルを使うと、入力されたコメントデータ をポストされた情報やその他のアクションに基づいて (置き換えで) 変更できます。 シグナルレシーバのいずれかが ``False`` を返すと、コメントの入力は無視され、 403 (not allowed) レスポンスを返します。 シグナルは ``Comment`` オブジェクトの :data:`~django.db.models.signals.pre_save` に前後して (実際には直前に) 送信 されます。 シグナルは以下の引数を伴います: ``sender`` コメントモデルです。 ``comment`` 投稿処理中のコメントインスタンスです。まだデータベースには保存され ていないので、プライマリキーはなく、リレーションも正しく動作しない 可能性があります。 ``request`` コメントの投稿に使われた :class:`~django.http.HttpRequest` です。 comment_was_posted ================== .. data:: django.contrib.comments.signals.comment_was_posted :module: コメントの保存直後に送信されるシグナルです。 シグナルは以下の引数を伴います: ``sender`` コメントモデルです。 ``comment`` 投稿されたコメントインスタンスです。すでにデータベースに保存され ているので、このオブジェクトを変更した場合、再度 :meth:`~django.db.models.Model.save` を呼び出す必要があります。 ``request`` コメントの投稿に使われた :class:`~django.http.HttpRequest` です。 comment_was_flagged =================== .. data:: django.contrib.comments.signals.comment_was_flagged :module: コメントが何らかの形で「フラグされた」直後に送信されます。フラグをチェック すれば、ユーザがコメントの削除を要求しているのか、モデレータによるコメント の承認/削除があったのか、その他カスタムのユーザフラグの変化などがわかりま す。 シグナルは以下の引数を伴います: ``sender`` コメントモデルです。 ``comment`` 投稿されたコメントインスタンスです。すでにデータベースに保存され ているので、このオブジェクトを変更した場合、再度 :meth:`~django.db.models.Model.save` を呼び出す必要があります。 ``flag`` コメントに結びつけられた :class:`~django.contrib.comments.models.CommentFlag` です。 ``created`` フラグが新たに結びつけられた場合は ``True``, 他のフラグと重複する場 合には ``False`` です。 ``request`` コメントの投稿に使われた :class:`~django.http.HttpRequest` です。