首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在zinnia中按时间顺序显示条目-blog

在zinnia中按时间顺序显示条目-blog
EN

Stack Overflow用户
提问于 2013-11-24 11:58:01
回答 1查看 304关注 0票数 0

如何按时间顺序显示zinnia博客的条目,即从最老到最新?

我试着改变和调整基于类的视图或经理,但是似乎没有什么效果,我总是得到通常的“最新到最老”的订单。

更新:第一次尝试是一个按时间顺序显示条目的管理器。

代码语言:javascript
复制
from zinnia.managers import EntryPublishedManager

class EntryPublishedManagerFromStart(EntryPublishedManager):
    """Manager to retrieve published entries in reverse order"""

    def get_query_set(self):
        return super(EntryPublishedManagerFromStart, self
                    ).get_query_set().order_by('creation_date')

class MyEntry(EntryAbstractClass):
    """ This Entry can be displayed in chronological order. """

    fromstart = EntryPublishedManagerFromStart()

    class Meta(EntryAbstractClass.Meta):
        abstract = True

在settings.py中:

代码语言:javascript
复制
ZINNIA_ENTRY_BASE_MODEL = 'blog.entry.MyEntry'

在views.py中:

代码语言:javascript
复制
class EntryIndexFromStart(EntryIndex):
    """ View returning the archive index in chronological order. """
    queryset = Entry.fromstart.all

在urls.py中:

代码语言:javascript
复制
...
url(r'^fromstart/?$',
    blogviews.EntryIndexFromStart.as_view(),
    name='zinnia_entry_archive_fromstart'),

但这显示了通常最新到最古老的顺序。当我像这样更换经理时..。

代码语言:javascript
复制
    def get_query_set(self):
        return super(EntryPublishedManagerFromStart, self
                   #).get_query_set().order_by('creation_date')
                    ).get_query_set().order_by('-creation_date')

..。显示没有变化,这很奇怪。

下一个尝试是一个简单的基于函数的视图:

代码语言:javascript
复制
def fromstart(request):
    entries = Entry.objects.filter(status=PUBLISHED).order_by('creation_date')
    return render(request, 'zinnia/entry_archive.html',
                  {'entry_list': entries,
                   'object_list': entries,
                   'is_paginated': False})

现在条目从最老到最新,但我失去了分页。

(我很抱歉在问题的第一个版本中如此简洁。但我想,对于这个看似简单的要求,必须有一个简单而明显的答案,只有我无法理解。我不得不承认,我对基于班级的观点仍有自己的问题。我很难找到功能在哪里,我想要改变。)

这个问题可能是由Meta.ordering在zinnia.entry.CoreEntry中造成的:

代码语言:javascript
复制
class CoreEntry(models.Model):
    ...
    class Meta:
        ...
        ordering = ['-creation_date']

我不知道该怎么推翻这个。

EN

回答 1

Stack Overflow用户

发布于 2013-12-03 01:52:30

抱歉,在接电话。需要编辑

您可以扩展Zinia的入门模型Zinnia有一节关于这一点。然后,正如您提到的那样,重写Meta.ordering。

可能有点像

类MyCoreMeta(CoreEntry.Meta) ordering=´+creation_date´

类MyCoreEntry(CoreEntry):Meta=MyCoreMeta

然后创建您自己的抽象条目类,正如Zinnia中所解释的那样,将MyCoreEntry替换为CoreEntry。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20174186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档