我设立一个博客网站,当我添加的博客文章,最早的是在列表的顶部。我该如何扭转这种状况,以便使最新帖子位于页面顶部?
这是我的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
答案 0 :(得分:1)
您可以在类Meta中定义ordering
。
这是字符串和/或查询表达式的元组或列表。每个字符串都是一个带有可选“-”前缀的字段名称,表示降序。没有前导“-”的字段将按升序排列。
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']