Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django博客文章从最新到最旧排序_Python_Django - Fatal编程技术网

Python Django博客文章从最新到最旧排序

Python Django博客文章从最新到最旧排序,python,django,Python,Django,我正在建立一个博客网站,当我添加博客帖子时,最老的一个在列表的顶部。我如何扭转这种局面,使最新的帖子出现在页面顶部 这是我的pages/models.py我不知道ordered_posts=Post.objects.order_by('created_date')是否在正确的位置。我不知道该把它放在哪里。任何帮助都将不胜感激。谢谢 class Post(models.Model): title = models.CharField(max_length=50) created_

我正在建立一个博客网站,当我添加博客帖子时,最老的一个在列表的顶部。我如何扭转这种局面,使最新的帖子出现在页面顶部

这是我的pages/models.py我不知道ordered_posts=Post.objects.order_by('created_date')是否在正确的位置。我不知道该把它放在哪里。任何帮助都将不胜感激。谢谢

 class Post(models.Model):
    title = models.CharField(max_length=50)
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(auto_now_add=True blank=True, null=True)
    author = models.ForeignKey(
        'auth.User',
        on_delete=models.CASCADE,
    )
    body = models.TextField()

    ordered_posts = Post.objects.order_by('-created_date')

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

您可以在Meta类中定义
排序

这是字符串和/或查询表达式的元组或列表。每个字符串都是带有可选“-”前缀的字段名,表示降序。没有前导“-”的字段将按升序排列


Post.objects.order\u by('-created\u date')
中删除
-
,它应该按照正确的顺序排序。您可能希望在显示帖子的视图中显示这段代码。这取决于。每个
Post
对象都是不同的博客帖子吗?您试图使用
Post.objects
访问什么属性?实际上,我最终使用了“-”来代替它。谢谢你的帮助。这就是我所需要的。
class Post(models.Model):
    title = models.CharField(max_length=50)
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(auto_now_add=True blank=True, null=True)
    author = models.ForeignKey(
        'auth.User',
        on_delete=models.CASCADE,
    )
    body = models.TextField()

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

    class Meta:
        ordering = ['created_date']