views:

555

answers:

1

Hi, is there any existing pagination solution for Django contrib.comments?

What I need is just a simple paginated django comments, for the Basic Blog application (from the Django Basic Apps) I used, using a simple has_previous and has_next

I have copied the django.contrib.comments and tried modify the code but with no success. The code is pretty hard to understand (django/contrib/comments/templatetags/comments.py) because it consists of Node and Parser

here is my comments.html template I used for the Blog application:

{% load comments markup %}
{% get_comment_list for object as comment_list %}
    {% if comment_list %}
    <div class="comments g_7 left">
     <a name="comments"></a>
     <div class="subtitle">Comments</div>
     {% for comment in comment_list %}
      {% if comment.is_public %}
      <div class="comment g_6" id="c{{ comment.id }}">
       <div class="comment_name g_6">
       <div class="comment_count right">
        <a name="c{{ comment.id }}" href="{{ comment.get_absolute_url }}" {% ifnotequal comment.person_name null %}title="Permalink to {{ comment.person_name }}'s comment"{% endifnotequal %} class="comment_count">{{ forloop.counter }}</a></div>
        Wrote by <strong>{% if comment.user_url %}<a href="{{ comment.user_url }}">{{ comment.user_name }}</a>{% else %}{{ comment.user_name }}{% endif %}</strong> on {{ comment.submit_date|date:"F j, Y" }} - {{ comment.submit_date|date:"P" }} 
       </div>
       <div class="comment_body g_6">{{ comment.comment|urlizetrunc:"60"|safe }}</div>
      </div>
      {% endif %}
     {% endfor %}

     <div class="clear"></div>
    </div>
    {% else %}
     No comments yet.
    {% endif %}

I think the problem lies in the get_comment_list templatetags :)

Thanks in advance

+3  A: 

I think django-pagination might be what you're looking for.

http://code.google.com/p/django-pagination/ (screencast available)

Justin Lilly
Hi, thanks for the answer :)Actually I'm looking for the specific comment pagination, that someone might have done previously (I suppose comment is a common feature and someone must've done the pagination in the comment solution) but I think the link you gave me can provide the workaround :)I'll try to play with it. thanks!
Adrian Liem
+1 django-pagination is a great way to solve this; it's as easy as putting it in your INSTALLED_APPS and adding two lines to your template: "{% autopaginate comment_list %}" before you loop through it and (wherever you want the pagination controls) "{% pagination %}".
Carl Meyer