1
- ===========================
1
+ ======================
2
2
コメントフレームワーク
3
- ===========================
3
+ ======================
4
4
5
- :revision-up-to: 17812 (1.4) unfinished
5
+ :revision-up-to: 17812 (1.4)
6
6
7
7
.. module:: django.contrib.comments
8
8
:synopsis: Django のコメントフレームワークです。
@@ -21,43 +21,43 @@ Django には単純ながらカスタマイズ可能なコメントフレーム
21
21
</ref/contrib/comments/upgrade>` を参照してください。
22
22
23
23
クイックスタートガイド
24
- ==========================
24
+ ======================
25
25
26
26
``comments`` を使うには、以下のステップに従います:
27
27
28
- #. :setting:`INSTALLED_APPS` に ``'django.contrib.comments'`` を
29
- インストールします。
28
+ #. :setting:`INSTALLED_APPS` に ``'django.contrib.comments'`` を
29
+ インストールします。
30
30
31
- #. ``manage.py syncdb`` を実行して、コメントフレームワークのテーブルを
32
- 生成します。
31
+ #. ``manage.py syncdb`` を実行して、コメントフレームワークのテーブルを
32
+ 生成します。
33
33
34
- #. コメントアプリケーションの URL をプロジェクトの ``urls.py`` にマップ
35
- します:
36
-
37
- .. code-block:: python
34
+ #. コメントアプリケーションの URL をプロジェクトの ``urls.py`` にマップ
35
+ します:
38
36
39
- urlpatterns = patterns('',
40
- ...
41
- (r'^comments/', include('django.contrib.comments.urls')),
42
- ...
43
- )
37
+ .. code-block:: python
44
38
45
- #. :ref:`コメントテンプレートタグ <comment-template-tags>` を使って、
46
- コメント機能をテンプレートに埋め込みます。
39
+ urlpatterns = patterns('',
40
+ ...
41
+ (r'^comments/', include('django.contrib.comments.urls')),
42
+ ...
43
+ )
44
+
45
+ #. :ref:`コメントテンプレートタグ <comment-template-tags>` を使って、
46
+ コメント機能をテンプレートに埋め込みます。
47
47
48
48
:doc:`/ref/contrib/comments/settings` も調べておきましょう。
49
-
49
+
50
50
.. _comment-template-tags:
51
51
52
52
コメントテンプレートタグ
53
- ==========================
53
+ ========================
54
54
55
55
コメントシステムは、主にテンプレートタグを使って操作します。テンプレートタ
56
56
グを使えば、コメントをポストするためのフォームや、ポストされたコメントを埋
57
57
め込めます。
58
58
59
59
他のカスタムテンプレートタグライブラリと同様、使うには
60
- :ref:`カスタムタグライブラリをロード <loading-custom-template-libraries>`
60
+ :ref:`カスタムタグライブラリをロード <loading-custom-template-libraries>`
61
61
しておかねばなりません::
62
62
63
63
{% load comments %}
@@ -73,30 +73,30 @@ Django のコメントは、全て何らかのオブジェクトに「結びつ
73
73
以下のタグを使うと、 2 種類の方法で、コメントを結びつけたいオブジェクトを指
74
74
定できます:
75
75
76
- #. オブジェクトを直接参照する方法 -- より一般的な方法です。たいていの場
77
- 合、コメントを結びつけたいオブジェクトはテンプレートコンテキストの中
78
- に入っているはずです。そのオブジェクトを使います。
79
-
80
- 例えば、あるブログのエントリ表示ページに ``entry`` という変数が入っ
81
- ていて、エントリオブジェクトを表現しているなら、以下のようにして、
82
- ``entry`` に結び付いたコメントの数を表示できます::
83
-
84
- {% get_comment_count for entry as comment_count %}.
85
-
86
- #. オブジェクトをコンテンツタイプとオブジェクト id で指定する方法。何ら
87
- かの理由で、コメントを結び付ける対象のオブジェクトに直接アクセスでき
88
- ない場合に使います。
89
-
90
- 上のような例で、オブジェクトの id が ``14`` だと分かっていて、かつ対
91
- 象のオブジェクトにアクセスできないなら、以下のようにします::
92
-
93
- {% get_comment_count for blog.entry 14 as comment_count %}
94
-
95
- この例の ``blog.entry`` は、アプリケーションラベルと (小文字にした)
96
- モデルクラス名をつなげたものです。
76
+ #. オブジェクトを直接参照する方法 -- より一般的な方法です。たいていの場
77
+ 合、コメントを結びつけたいオブジェクトはテンプレートコンテキストの中
78
+ に入っているはずです。そのオブジェクトを使います。
79
+
80
+ 例えば、あるブログのエントリ表示ページに ``entry`` という変数が入っ
81
+ ていて、エントリオブジェクトを表現しているなら、以下のようにして、
82
+ ``entry`` に結び付いたコメントの数を表示できます::
83
+
84
+ {% get_comment_count for entry as comment_count %}.
85
+
86
+ #. オブジェクトをコンテンツタイプとオブジェクト id で指定する方法。何ら
87
+ かの理由で、コメントを結び付ける対象のオブジェクトに直接アクセスでき
88
+ ない場合に使います。
89
+
90
+ 上のような例で、オブジェクトの id が ``14`` だと分かっていて、かつ対
91
+ 象のオブジェクトにアクセスできないなら、以下のようにします::
92
+
93
+ {% get_comment_count for blog.entry 14 as comment_count %}
94
+
95
+ この例の ``blog.entry`` は、アプリケーションラベルと (小文字にした)
96
+ モデルクラス名をつなげたものです。
97
97
98
98
コメントを表示する
99
- -------------------
99
+ ------------------
100
100
101
101
.. To display a list of comments, you can use the template tags
102
102
:ttag:`render_comment_list` or :ttag:`get_comment_list`.
@@ -231,7 +231,7 @@ Django のコメントは、全て何らかのオブジェクトに「結びつ
231
231
.. templatetag:: get_comment_count
232
232
233
233
コメントの数を数える
234
- ----------------------
234
+ --------------------
235
235
236
236
オブジェクトに結びつけられたコメントの数を取得するには、
237
237
:ttag:`get_comment_count` を使います::
@@ -241,20 +241,20 @@ Django のコメントは、全て何らかのオブジェクトに「結びつ
241
241
例を挙げましょう::
242
242
243
243
{% get_comment_count for event as comment_count %}
244
-
244
+
245
245
<p>This event has {{ comment_count }} comments.</p>
246
-
246
+
247
247
248
248
コメント投稿フォームを表示する
249
- --------------------------------
249
+ ------------------------------
250
250
251
251
ユーザがコメントを投稿できるようフォームを表示するには、
252
252
:ttag:`render_comment_form` や :ttag:`get_comment_form` を使います。
253
253
254
254
.. templatetag:: render_comment_form
255
255
256
256
コメントフォームを手軽に出力する
257
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
257
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
258
258
259
259
コメントフォームを表示する最も簡単な方法は、
260
260
:ttag:`render_comment_form` を使うやり方です::
@@ -271,15 +271,15 @@ Django のコメントは、全て何らかのオブジェクトに「結びつ
271
271
.. templatetag:: get_comment_form
272
272
273
273
カスタムのコメントフォームを出力する
274
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
274
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
275
275
276
276
コメントフォームのルック&フィールを制御したければ、
277
277
:ttag:`get_comment_form` を使って :doc:`フォームオブジェクト
278
278
</topics/forms/index>` を取得し、テンプレート内で使います::
279
279
280
280
{% get_comment_form for [object] as [varname] %}
281
281
282
- これで、フォームは以下のように書けます::
282
+ これで、フォームは以下のように書けます::
283
283
284
284
{% get_comment_form for event as form %}
285
285
<table>
@@ -302,7 +302,7 @@ Django のコメントは、全て何らかのオブジェクトに「結びつ
302
302
.. templatetag:: comment_form_target
303
303
304
304
コメントフォームターゲットを取得する
305
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
305
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
306
306
307
307
上の例では、 :ttag:`comment_form_target` というもう一つのタグを使って、フォー
308
308
ムの ``action`` 属性を取得していたことに気づいたでしょうか。このタグは、常
@@ -328,34 +328,34 @@ Django のコメントは、全て何らかのオブジェクトに「結びつ
328
328
.. _notes-on-the-comment-form:
329
329
330
330
コメントフォームに関する注意
331
- --------------------------------
331
+ ----------------------------
332
332
333
333
コメントシステムの使っているフォームには、スパムを防ぐための重要な属性があ
334
334
ります。これらの属性についてよく知っておきましょう:
335
335
336
- * フォームには、タイムスタンプやコメントを結び付ける対象のオブジェクト、
337
- これらの情報を検証するための「セキュリティハッシュ(security hash)」な
338
- ど、いくつもの隠しフィールドが入っています。コメントスパム屋がよくや
339
- るように、これらのフィールドの値を改ざんしようとすると、コメントの投
340
- 稿に失敗します。
341
-
342
- 自作のコメントフォームを出力するときには、この隠しフィールドの値を変
343
- 更せずに渡してください。
344
-
345
- * タイムスタンプは、長時間再生攻撃が繰り返されるのを防ぐために使われま
346
- す。フォームのリクエストからコメントのポストまで長時間経っている場合、
347
- フォームの提出は拒否されます。
348
-
349
- * コメントフォームには、「 `ハニーポット`_ (honeypot_)」フィールドがあ
350
- ります。このフィールドはトラップです: このフィールドに何らかのデータ
351
- が入力されると、そのコメントはスパムであると見なされます (スパムプロ
352
- グラムは、有効なフォーム入力を偽装するために、全てのフィールドを自動
353
- 的に埋めようとするからです)。
354
-
355
- デフォルトのフォームは、 CSS を使ってこのフォームを隠し、ラベルにも
356
- 警告の文字列を入れます。カスタムのテンプレートでコメントフォームを使
357
- うときにも、同じようにしてください。
358
-
336
+ * フォームには、タイムスタンプやコメントを結び付ける対象のオブジェクト、
337
+ これらの情報を検証するための「セキュリティハッシュ(security hash)」な
338
+ ど、いくつもの隠しフィールドが入っています。コメントスパム屋がよくや
339
+ るように、これらのフィールドの値を改ざんしようとすると、コメントの投
340
+ 稿に失敗します。
341
+
342
+ 自作のコメントフォームを出力するときには、この隠しフィールドの値を変
343
+ 更せずに渡してください。
344
+
345
+ * タイムスタンプは、長時間再生攻撃が繰り返されるのを防ぐために使われま
346
+ す。フォームのリクエストからコメントのポストまで長時間経っている場合、
347
+ フォームの提出は拒否されます。
348
+
349
+ * コメントフォームには、「 `ハニーポット`_ (honeypot_)」フィールドがあ
350
+ ります。このフィールドはトラップです: このフィールドに何らかのデータ
351
+ が入力されると、そのコメントはスパムであると見なされます (スパムプロ
352
+ グラムは、有効なフォーム入力を偽装するために、全てのフィールドを自動
353
+ 的に埋めようとするからです)。
354
+
355
+ デフォルトのフォームは、 CSS を使ってこのフォームを隠し、ラベルにも
356
+ 警告の文字列を入れます。カスタムのテンプレートでコメントフォームを使
357
+ うときにも、同じようにしてください。
358
+
359
359
.. The comments app also depends on the more general :doc:`Cross Site Request
360
360
Forgery protection </ref/contrib/csrf>` that comes with Django. As described in
361
361
the documentation, it is best to use ``CsrfViewMiddleware``. However, if you
0 commit comments