【问题标题】:How do i show recent posts first in Django blog?如何在 Django 博客中首先显示最近的帖子?
【发布时间】:2011-10-30 13:20:06
【问题描述】:

我是新的 Django,我一直在关注关于创建博客的教程。

我创建了一个显示帖子的博客。但是,它会按顺序显示帖子:最旧的帖子在前,最新的帖子在最后。

这是“models.py”中的代码:

from django.db import models

class Blog(models.Model):
    title = models.CharField(max_length=32)
    date = models.DateTimeField(auto_now_add=True)
    text = models.TextField()

如何先显示新帖子,最后显示旧帖子?

【问题讨论】:

    标签: django date blogs


    【解决方案1】:
    from django.db import models
    
    class Blog(models.Model):
        title = models.CharField(max_length=32)
        date = models.DateTimeField(auto_now_add=True)
        text = models.TextField()
    
        class Meta:
            ordering = ['-date',]
    

    https://docs.djangoproject.com/en/dev/topics/db/models/#meta-options

    或者在你创建查询集时这样做

    Blog.objects.all().order_by('-date')
    

    https://docs.djangoproject.com/en/dev/ref/models/querysets/#order-by

    【讨论】:

    • 第二个成功了。但是当我同步数据库时,第一个给了我一个 Indentationerror。
    • 你可能正在使用空格来缩进你的行;将制表符切换为空格。第一个解决方案比第二个解决方案更好,因为它会在您查询模型时保持顺序一致
    • 是的,我意识到我的缩进是错误的,修复它。我更喜欢第二种,因为那样它需要的工作更少
    【解决方案2】:
    • 这就是我的工作方式,不是新的解决方案,只是更详细。
    • 在我的 views.py
    def blog(request):
        post_list = Post.objects.all().order_by('-timestamp')
    
    
        context = {
            'post_list': post_list,
        }
        return render(request, 'blog/blog.html', context)
    
    
    • 谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      相关资源
      最近更新 更多