所以我有这个模型:
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个帖子。
最佳答案
您可以使用creation_date
将最新的5个帖子(按order_by
排序)传递到模板:
def blog(request):
return render_to_response('home/blog.html', {
'posts': Post.objects.order_by('-creation_date')[:5]
})
-
之前的creation_date
表示返回的日期将按降序排列,即最近的日期在前。要添加功能以显示接下来的5个帖子,我将使用我建议的方法将10个最新的
Post
返回到模板,然后使用另一种方法(也许是基本的JavaScript)来操作这些模板,