javascript - Django - 查询集索引而不是循环
问题描述
在上图中,我试图找到一种方法来显示我的数据库中的 6 个精选帖子,而不是 HTML 中的六个静态实体。
这是主页的视图:
from django.shortcuts import render
from singlePost.models import Post
# Create your views here.
def index(request):
queryset = Post.objects.filter(featured=True)
context = {
'object_list': queryset
}
return render(request, 'index.html', context)
这是主页 HTML 中的一些代码(循环通过 object_list):
{% for obj in object_list %}
{% if forloop.counter0 == 0 %}
<h3 class="mb-15 mb-sm-5 font-sm-13"><b>{{ obj.title }}</b></h3>
{% endif %}
{% endfor %}
我的问题是:我怎样才能获得 object_list 的索引,这样我就可以使用前 6 个特色帖子?
我不知道该怎么做,所以它目前正在遍历所有帖子,我使用上面看到的 if 来检查当前索引,但这似乎是错误的循环 6 次而不是使用索引。如果所有 div 都相同,则循环围绕 div 会很好,但正如您在图片中看到的那样,它们不是。
那么,如何获取 QuerySet 的索引呢?还是有比我想的两种方法更好的方法来做到这一点?
谢谢
解决方案
在 index() 你已经定义查询集如下
queryset = Post.objects.filter(featured=True).order_by("-id")[:6]
通过order_by("-id")将首先返回最新的精选帖子,而[:6]这将只给出 6 个帖子。
https://docs.djangoproject.com/en/2.2/ref/models/querysets/#reverse
推荐阅读
- android - android SDK 地图提供了错误的用户位置
- node.js - Async/Await & UnhandlePromiseRejectWarning
- spring - Spring shell 块测试
- go - 在 Go 中通过语句或数据库使用 QueryRow
- scala - 如何使用scala在spark中使用foreach正确调用函数?
- python - 来自足球(足球)场线的单应性
- javascript - 为什么我会收到 404 错误,没有 Firebase App '[DEFAULT]' 是什么意思?
- angular - 为角度访问之外的角度组件创建公共方法
- flutter - Flutter 错误:找不到 Getter:english_words.dart 包中的“wordPair”
- php - laravel:使用下拉列表在页面上显示的数据