コメントアプリケーションのシグナル

revision-up-to:17812 (1.4)

コメントアプリケーションは、コメントのモデレーションやそれに類する処理を行 えるよう、 シグナル をいくつか定義しています。シグ ナルハンドラの登録方法や受信方法は シグナルの解説 を参照してください。

comment_will_be_posted

django.contrib.comments.signals.comment_will_be_posted

コメントフォームデータのチェックが済み、フォームが提出されて、コメントが保 存される直前に送信されます。このシグナルを使うと、入力されたコメントデータ をポストされた情報やその他のアクションに基づいて (置き換えで) 変更できます。

シグナルレシーバのいずれかが False を返すと、コメントの入力は無視され、 403 (not allowed) レスポンスを返します。

シグナルは Comment オブジェクトの pre_save に前後して (実際には直前に) 送信 されます。

シグナルは以下の引数を伴います:

sender
コメントモデルです。
comment
投稿処理中のコメントインスタンスです。まだデータベースには保存され ていないので、プライマリキーはなく、リレーションも正しく動作しない 可能性があります。
request
コメントの投稿に使われた HttpRequest です。

comment_was_posted

django.contrib.comments.signals.comment_was_posted

コメントの保存直後に送信されるシグナルです。

シグナルは以下の引数を伴います:

sender
コメントモデルです。
comment
投稿されたコメントインスタンスです。すでにデータベースに保存され ているので、このオブジェクトを変更した場合、再度 save() を呼び出す必要があります。
request
コメントの投稿に使われた HttpRequest です。

comment_was_flagged

django.contrib.comments.signals.comment_was_flagged

コメントが何らかの形で「フラグされた」直後に送信されます。フラグをチェック すれば、ユーザがコメントの削除を要求しているのか、モデレータによるコメント の承認/削除があったのか、その他カスタムのユーザフラグの変化などがわかりま す。

シグナルは以下の引数を伴います:

sender
コメントモデルです。
comment
投稿されたコメントインスタンスです。すでにデータベースに保存され ているので、このオブジェクトを変更した場合、再度 save() を呼び出す必要があります。
flag
コメントに結びつけられた CommentFlag です。
created
フラグが新たに結びつけられた場合は True, 他のフラグと重複する場 合には False です。
request
コメントの投稿に使われた HttpRequest です。