freecomment,commentのtemplatetagの続き

を参考に続けていきます。


まずは、生成されるHTMLを確認

<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">ユーザ名:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">コメント:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="9:1" />
<input type="hidden" name="gonzo" value="cdeb406a23d57cb482ab0009df790d8a" />
<input type="submit" name="preview" value="コメントをプレビュー" />

</p>
</form>

で、formタグのactionに注目。
/comments/postfree/というURLになっている。
で、urls.pyを見てみるとないので以下を追加

     (r'^comments/', include('django.contrib.comments.urls.comments')),

そして、POSTしてみる。
TemplateDoesNotExistと出てくる。
comments/free_preview.htmlがないようなのでTEMPLATE_DIRS以下に作る。
FreeComment 書き込みフォームを組み込む。を参考にファイルを作成。
で、POSTしてみる。
お〜、上にプレビュー、下は続けて編集できるようになっている。
次に、またPOST。
するとまた、TemplateDoesNotExist。
今度はcomments/posted.htmlがないようだけど、データはちゃんと保存されています。
"comments_freecomments"のテーブルを確認してください。
comments/posted.htmlはPOSTが終了しDBにデータが保存できたことを示すので適当に作成。


次は、POSTしたデータを表示できるようにします。
今回は、default.htmlに追加。
使うタグは

{% get_comment_list for [pkg].[py_module_name] [context_var_containing_obj_id] as [varname] (reversed) %}

です。

<h3>Comments</h3>
{% get_free_comment_list for flatpages.flatpage flatpage.id as comment_list %}
{% for comment in comment_list %}
    #{{ forloop.counter }} {{ comment.submit_date }}
    <p>{{ comment.person_name|escape }}</p>
    <p>{{ comment.comment|escape|urlizetrunc:40|linebreaks }}</p>
{% endfor %}

{% get_free_comment_list %}でコメントデータを取得します。
あとは、for文で個数分表示します。
表示内容は、日付、名前、内容です。
これで、基本的にコメントの表示とPOSTができるようになります。


コメントされた件数を表示するには

{% get_comment_count for [pkg].[py_module_name] [context_var_containing_obj_id] as [varname]  %}

です。
default/htmlには以下のようにすると表示されます。

{% get_free_comment_count for flatpages.flatpage flatpage.id as comment_count %}
{{ comment_count }} Comment{{ comment_count|pluralize }}</a>

次は、flatpage+認証にしようかな。