在上图中,我试图找到一种方法来显示数据库中的 6 个精选帖子,而不是仅显示 HTML 中的 6 个静态实体。
这是主页的 View :
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
关于javascript - Django - 查询集索引而不是循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57234093/