以相反顺序重新排序来自django评论框架的评论

时间:2012-07-21 00:41:15

标签: django django-models django-comments

我想重新排序我的评论以显示最新的评论。我正在使用内置的Django评论框架。是否有内置或简单的方法来做到这一点?

2 个答案:

答案 0 :(得分:6)

来自Django文档:

You can loop over a list in reverse by using {% for obj in list reversed %}.

所以,在我的模板中我有:

{% for comment in comment_list reversed %}

您的评论现在正好相反。

答案 1 :(得分:0)

您可以尝试https://docs.djangoproject.com/en/dev/ref/contrib/comments/custom/

class ReorderComment(Comment):
    class Meta:
        ordering = ["-submit_date"]

在settings.py

COMMENTS_APP = 'my_comment_app' 

或者您可以通过创建templatetags

来重新加载它们
{% get_comment_list for event as comment_list %}
{% reoder_comments comment_list as reodered_comment_list %}

reoder templatetags看起来像(使用django-classy-tags)

register = template.Library()
class ReoderComments(Tag):
    name = 'reoder_comments'
    options = Options(
        Argument('queryset'),
        'as',
        Argument('varname', required=False, resolve=False)
    )
    def render_tag(self, context, queryset, varname):
        context[varname] = queryset.order_by("-submit_date")
        return ''
register.tag(ReoderComments)