python - 如何按发布日期显示最新 5 篇帖子?

标签 python django django-models django-templates

所以我有这个模型:

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/

相关文章:

python - 如何在 django 中为 on_delete=models.PROTECT 创建自定义异常消息

python - Django 键违反唯一约束

python - SQLAlchemy 为每个查询添加注释

Python 脚本手动运行良好,但在使用 Cronjob 运行时出错

python - Seaborn Lineplot 模块对象没有属性 'Lineplot'

python - 在 django 模板中访问查询集对象

Django 没有重定向

Django NoReverseMatch at/services/'services' 不是注册的命名空间

python - 有没有一种简单的方法可以在 Python 正则表达式中使用和忽略元字符之间进行切换?

python - TypeError at/accounts/register/__init__() 得到意外的关键字参数 'instance'