2

私はこれについて髪を引っ張ってきましたが、何が起こっているのかわかりません。

私の見解では、これを行うことができます:

from django.contrib.comments import Comment

...
context['comments'] = Comment.objects.filter(object_pk = self.kwargs['pk'])

...

次に、テンプレートで次のことを行います。

{% for comment in comments %}
{{ comment.comment }}
{% endfor %}

それは完全に機能し、各コメントを表示します...

ただし、コメントにdjangoテンプレートタグを使用しようとすると、空のリストが表示されます

{% load comments %}
{% get_comment_list for video as comments %}
{% for comment in comments %}
{{ comment.comment }}
{% endfor %}
{{ comment_list|length }}  // displays '0'

上記のコードの video は、テンプレート コンテキストのオブジェクト インスタンスです。テンプレートの別の場所で使用していますが、問題なく動作します。つまり、{{ video.title }}, {{ video.id }}

また、他のコメント テンプレート タグは正常に動作するようです。

{% render_comment_list video %}

私がcomments/list.htmlで見つけたテストテンプレートを表示します - このテンプレートは単に「hello world」を出力します。

ここで何が起こっているのか、それをデバッグする方法はありますか?

4

1 に答える 1

0

推測ですが、これを行うと:

Comment.objects.filter(object_pk = self.kwargs['pk'])

ビューでは、content_type取得したいコメントに (Video) を指定していないため、ID が「pk」の任意のオブジェクトのすべてのコメントを取得しています。これが、手動で行うとコメントが表示される理由かもしれません。しかし、テンプレートタグに任せると何もありません。コメントが正しいものに添付されていない可能性がありますContentType-これはdjango管理者で確認できます

于 2012-01-28T11:40:01.567 に答える