2012-01-28 3 views
2

Je me suis arraché les cheveux et je n'arrive pas à comprendre ce qui se passe.Django get_comment_list renvoie la liste vide

À mon avis, je peux le faire:

from django.contrib.comments import Comment 

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

... 

Puis, dans mon modèle quand je fais:

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

Il fonctionne parfaitement et affiche chaque commentaire ...

Cependant, lorsque J'essaie d'utiliser les balises de modèle django pour les commentaires Je reçois une liste vide

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

vidéo dans le code ci-dessus est l'instance d'objet dans le contexte du modèle - Je l'utilise ailleurs dans le modèle et il fonctionne très bien - à-dire {{video.title}}, {{}} video.id

également - d'autres balises de modèle de commentaire semblent fonctionner correctement:

{% render_comment_list video %} 

affiche le modèle de test j'ai situé à commentaires/list.html - ce modèle imprime simplement sur « Bonjour tout le monde ».

Une idée de ce qui se passe ici ou comment le déboguer?

Répondre

0

Juste une supposition, mais quand vous faites ceci:

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

dans la vue, vous ne spécifiez pas content_type (vidéo) pour les commentaires que vous souhaitez obtenir, vous récupérez tous les commentaires pour n'importe quel objet avec l'ID 'pk' - c'est peut-être la raison pour laquelle vous voyez des commentaires quand vous le faites manuellement, mais aucun quand vous le laissez à la balise template. Peut-être que les commentaires ne sont pas attachés à la bonne ContentType - vous pouvez vérifier cela dans l'administrateur django

Questions connexes