[py][mx]django实现课程机构排名
如果是第一次做这个玩意,说实话,确实不知道怎么弄, 做一次后就有感觉了
此前我们已经完成了:
- 分类筛选
- 分页
这次我们做的是
- 课程机构排名
知识点:
- 按照点击数从大到小排名, 取出前三名
hot_orgs = all_orgs.order_by("-click_nums")[:3]
- 模板中for语句会自动产生forloop变量,可以计数,用来显示排名
<p>{{ forloop.counter }}</p>
授课机构排名
orgView
安装点数从大到小取top3
class OrgView(View): # 课程机构列表页
def get(self, request):
all_orgs = CourseOrg.objects.all() # 所有课程机构
# 根据click_nums筛选热门课程
hot_orgs = all_orgs.order_by("-click_nums")[:3]
return render(request, 'org-list.html', {
'hot_orgs': hot_orgs
})
org-list.html
{# 热门机构#}
<div>
<p>课程机构排名</p>
{% for hot_org in hot_orgs %}
<p>{{ forloop.counter }}</p>
<p><a href=""><h1>{{ hot_org.name }}</h1></a></p>
<p>{{ hot_org.address }}</p>
{% endfor %}
</div>