最新的5条帖子如何通过发布日期展示?

2024-04-19 14:18:40 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有这个模型:

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个职位。你知道吗


Tags: textselfdefaulttitlemodelsdefdescriptionpost
2条回答
def blog(request):
    return render(request, 'home/blog.html', {
        'posts': Post.objects.order_by('-creation_date')[:5]
    })

render而不是render_to_response,后者为您处理上下文实例。你知道吗

您可以使用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篇最新的Post返回到模板,然后使用另一种方法(可能是basic JavaScript)来操作它们

相关问题 更多 >