所以我有这个模型:
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个帖子(按日期),如果我按&#34;请参阅更多&#34;显示下5个帖子。
答案 0 :(得分:2)
您可以使用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)来操作它们,
答案 1 :(得分:0)
def blog(request):
return render(request, 'home/blog.html', {
'posts': Post.objects.order_by('-creation_date')[:5]
})
render
而不是render_to_response
,它会为您处理上下文实例。