【问题标题】:Reorder comments from django comments framework in reverse order以相反的顺序重新排序来自 django 评论框架的评论
【发布时间】:2012-07-20 06:35:30
【问题描述】:

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

【问题讨论】:

    标签: django django-models django-comments


    【解决方案1】:

    来自 Django 文档:

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

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

    {% for comment in comment_list reversed %}
    

    你的 cmets 现在是反向的。

    【讨论】:

      【解决方案2】:

      你可以试试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' 
      

      或者您可以通过创建模板标签来重新编码它们

      {% get_comment_list for event as comment_list %}
      {% reoder_comments comment_list as reodered_comment_list %}
      

      reoder 模板标签看起来像(使用 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)
      

      【讨论】:

      • 使用 templatetag 方法时,我现在收到一条错误消息,提示“异常值:未定义名称‘标签’”。您能否提供进一步的指导?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-06
      相关资源
      最近更新 更多