Django中如何获取Car分类下数据库内最新的3篇博客文章?
获取Car分类下最新3篇文章的调整方案
你的问题出在QuerySet默认按正序排列(通常是主键id或模型定义的默认排序),直接切片[:3]会取到最早创建的3篇文章。只需添加倒序排序规则,就能获取最新的3篇。
调整后的代码示例
根据你的模型字段选择合适的排序字段:
- 按文章创建时间倒序(推荐,需模型有
created_at字段):
'car_post': Post.objects.filter(category__name='car').order_by('-created_at')[:3]
- 按主键id倒序(如果主键是自增整数,最新文章id更大):
'car_post': Post.objects.filter(category__name='car').order_by('-id')[:3]
注意事项
- 若模型的
Meta类中设置了ordering属性,显式的order_by()会覆盖默认排序规则,确保你拿到的是预期的顺序。 - 确保使用的排序字段(如
created_at)已在Post模型中定义,例如:
class Post(models.Model): # 其他字段 created_at = models.DateTimeField(auto_now_add=True) # 自动记录创建时间
内容的提问来源于stack exchange,提问作者Armin
相关产品推荐
相关产品推荐

