0

Django のビルトイン コメント機能の勉強を始めたところです。最初は、コメント テンプレートはget_comment_formまたはrender_comment_formを使用するだけでどのページでもうまく機能するはずだと思いますが、これらのコードを通常のページに追加すると本当に面倒です。うまくいきません。言い換えればかもしれません。通常のページに添付するオブジェクトを指定する方法がわかりません。以下は詳細メッセージです:

models.py
class Entry(models.Model):
    title = models.CharField(max_length=250)
    body = models.TextField()
    pub_date = models.DateTimeField()
    enable_comments = models.BooleanField()

urls.py
urlpatterns = patterns('',
url(r'^profile/','django.views.generic.simple.direct_to_template',{
        'template' : 'admin_ryu_blog/profile.html'},name='profile'),
)

テンプレート profile.html でコメント フレームワークを使用したいだけです。私は何をすべきか ?これで、profile.html を空白のページと見なすことができます。組み込みのコメント フレームワークで表示されるコメント フォームを取得できる場合は、任意のコードを追加できます。

ところで、私は以下の方法を試しました:

{% load comments %}
{% render_comment_form for profile %} 

その後、エラー メッセージが表示されます。私の前の質問と同じトレースバック。ここをクリック! _

4

1 に答える 1

0

できません。コメント フレームワークは、オブジェクトが参照することを想定しています。

しかし、頭に浮かぶ簡単な解決策は、次のように URL にマップするモデルを構築することです。

class CommentAnchor(models.Model):
    path = models.CharField(max_length=256)

これらのオブジェクトを構築し、すべてのテンプレート コンテキストに追加するコンテキストプロセッサを構築します。コンテキスト プロセッサを に追加することを忘れないでください。また、テンプレートをレンダリングするときsettings.TEMPLATE_CONTEXT_PROCESSORSに使用することを忘れないでください。RequestContext

def CommentAnchorProcessor(request):
    comment_anchor, created = CommentAnchor.objects.get_or_create(path=request.path)
    return {
        'comment_anchor': comment_anchor,  # now, this is available in every template.
    }

これらの新しいオブジェクトを介してコメントをレンダリングできるようになりました。

{% render_comment_form for comment_anchor %} 
于 2013-01-25T04:46:33.167 に答える