所以我有这个模型:

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)来操作这些模板,

08-18 04:53