我一直把头发拉过来,无法弄清楚发生了什么。
在我看来,我可以这样做:
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.title}},{{video.id}}
此外 - 其他评论模板标签似乎工作正常:
{% render_comment_list video %}
显示我在comments / list.html上找到的测试模板 - 这个模板只打印出" hello world"。
知道这里发生了什么或如何调试它?
答案 0 :(得分:0)
只是一个猜测但是,当你这样做时:
Comment.objects.filter(object_pk = self.kwargs['pk'])
在视图中,您没有为要获得的评论指定content_type
(视频),因此您正在检索ID为“pk”的任何对象的所有评论 - 也许这就是您的原因手动执行时看到注释,但是当你将它留给模板标签时没有注释。也许评论没有附加到正确的ContentType
- 你可以在django admin中查看这个