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