所以我有这个模型:
class Post(models.Model):
title = models.CharField(max_length=100, default='')
text = models.TextField(default='')
status = models.CharField(max_length=1, choices=STATUS_CHOICES,default='w')
description = models.TextField(default='', max_length=300)
creation_date = models.DateTimeField(auto_now_add=True, editable=False)
def __unicode__(self):
return self.title
def edit_text(self, text):
self.text = text
class Meta:
get_latest_by = 'creation_date'
我的看法:
def blog(request):
return render_to_response('home/blog.html', {
'posts': Post.objects.filter()[:5]
})
和模板:
{% for post in posts %}
<a class = "titles">{{ post.title }}</a>
<p class = "Parg">{{ post.description }}</a>
<br>
<br>
{% endfor %}
我希望在我的模板中显示最新 5 篇帖子(按日期),如果我按“查看更多”,则显示接下来 5 篇帖子。
最佳答案
您可以使用 order_by
将最新 5 篇帖子(按 creation_date
排序)传递到模板:
def blog(request):
return render_to_response('home/blog.html', {
'posts': Post.objects.order_by('-creation_date')[:5]
})
creation_date
前面的 -
表示返回的日期将按降序排列,即最近的日期在前。
要添加显示接下来 5 个帖子的功能,我将使用我建议的方法将最近 10 个帖子返回到模板,然后使用另一种方法(可能是基本方法)操作这些帖子JavaScript),
关于python - 如何按发布日期显示最新 5 篇帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34544775/