だから、私はdjango.contrib.commentsを使用しています。問題なくインストールできましたが、扱いにくいデフォルトのコメント フォームではなく、テキストエリアと送信ボタンだけを表示するカスタム フォーム テンプレートを使用したいと考えています。
この背後にある理論的根拠は、ユーザーが既に認証されている場合にのみフォームを表示することです。フォームをシンプルに保ち、ユーザー名などを自動的に取得したいと考えています。
カスタム フォームを実装しましたが、送信しようとするとエラーが発生します。
コメント フォームを含むページのテンプレートにあるものを次に示します (エントリはビューから渡されたオブジェクトです)。
{% load comments %}
{% render_comment_form for entry %}
/templates/comments/form.html の HTML は次のとおりです。
{% if user.is_authenticated %}
<p>Submit a comment:</p>
<form action="/comments/post/" method="post">
<textarea name="comment" id="id_comment" rows="2" style="width: 90%;"></textarea>
<input type="hidden" name="options" value="{{ options }}" />
<input type="hidden" name="target" value="{{ target }}" />
<input type="hidden" name="gonzo" value="{{ hash }}" />
<input type="hidden" name="next" value="{{ entry.get_absolute_url }}" />
<span style="float:right;"><input type="submit" name="post" value="Add"></span>
</form>
{% else %}
<p>Please <a href="/login/">log in</a> to post a comment.</p>
{% endif %}
最初は問題なく表示されますが、コメント フォームを送信しようとすると、次の Django エラーが発生します。
Comment post not allowed (400)
Why: Missing content_type or object_pk field.
誰でも助けることができますか?