24、Django实战第24天:讲师列表页
1、复制teracher-list.html到templates目录下
2、编辑teacher-list.html,继承base模板

3、编辑organization.views.py
...
from .models import Teacher class TeacherListView(View):
def get(self, request):
all_teachers = Teacher.objects.all()
return render(request, 'teachers-list.html', {
'all_teachers': all_teachers,
})
4、配置url,编辑organization.urls.py
...
from .views import TeacherListView urlpatterns = [
...
url(r'teacher/list/$', TeacherListView.as_view(), name='teacher_list' ), ]
5、修改index.html,base.html中的授课教师链接

6、先把所有的讲师都展示出来

分页
编辑organization.views.py
class TeacherListView(View):
def get(self, request):
all_teachers = Teacher.objects.all() # 分页
try:
page = request.GET.get('page', 1)
except PageNotAnInteger:
page = 1
p = Paginator(all_teachers, 2, request=request)
teachers = p.page(page) return render(request, 'teachers-list.html', {
'all_teachers': teachers,
})
编辑前端页码

修改前面的展示教师列表

人气排序 和统计教师
编辑organization.views.py
class TeacherListView(View):
def get(self, request):
all_teachers = Teacher.objects.all() # 人气排序
sort = request.GET.get('sort', '')
if sort:
if sort == 'hot':
all_teachers = all_teachers.order_by('-click_nums') # 统计教师数
teacher_nums = all_teachers.count() # 分页
try:
page = request.GET.get('page', 1)
except PageNotAnInteger:
page = 1
p = Paginator(all_teachers, 2, request=request)
teachers = p.page(page) return render(request, 'teachers-list.html', {
'all_teachers': teachers,
'sort': sort,
'teracher_nums': teacher_nums
})
前端配置

讲师排行榜
编辑organization.views.py
class TeacherListView(View):
def get(self, request):
all_teachers = Teacher.objects.all() # 人气排序
sort = request.GET.get('sort', '')
if sort:
if sort == 'hot':
all_teachers = all_teachers.order_by('-click_nums') # 统计教师数
teacher_nums = all_teachers.count() # 讲师排行榜
rank_teachers = all_teachers.order_by('-click_nums')[:2] # 分页
try:
page = request.GET.get('page', 1)
except PageNotAnInteger:
page = 1
p = Paginator(all_teachers, 2, request=request)
teachers = p.page(page) return render(request, 'teachers-list.html', {
'all_teachers': teachers,
'sort': sort,
'teracher_nums': teacher_nums,
'rank_teachers': rank_teachers,
})
前端展示

24、Django实战第24天:讲师列表页的更多相关文章
- mxonline实战13,授课讲师列表页,详情页,index页面全局导航
对应github地址:第13天 把teacher-list.html和teacher-detail.html拷贝过来 一. 授课讲师列表页 1. 修改html文件 把org-list.ht ...
- 微信小程序 项目实战(三)list 列表页 及 item 详情页
1.项目结构 2.list 列表页 (1)数据(逻辑) list.js // pages/list/list.js Page({ /** * 页面的初始数据 */ data: { title: '加载 ...
- [Django实战] 第8篇 - 分页列表
当用户登录成功后,首先看到的是他自己之前提交的任务列表,本篇将实现该页面. 视图(views.py)里定义如下: from django.core.paginator import Paginator ...
- 14、Django实战第14天:列表筛选功能
今天完成的是点击这些条件进行机构的筛选 首先来完成城市:当用户点击城市的时候,我们自动给它加一个参数(city.id) 编辑organization.views.py 刷新页面,发现筛选功能已经OK了 ...
- 25、Django实战第25天:讲师详情页
1.复制teacher-detail.html到templates目录下 2.编辑teacher-detail.html,继承base.html 3.编辑organization.view.py cl ...
- iOS 杂笔-24(常用类到NSObject的继承列表)
iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]
[易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...
- 19、Django实战第19天:课程列表页
从今天开始,我们将完成"公开课"课程的相关功能..... 1.把course-list.html复制到templates目录下 2.这个页面的头部.底部与之前定义的base.htm ...
- 13、Django实战第13天:分页列表功能
我们看课程 机构列表页是需要分页的 为了完成分页功能,我们需要用到Django的一个开源开发库django-pure-pagination workon mxonline pip install dj ...
随机推荐
- luogu P2764 最小路径覆盖问题
题目描述 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任何一个顶点开始,长度也是任 ...
- 在C/C++函数中使用可变参数
原文链接地址:http://blog.csdn.net/djinglan/article/details/8425768 下面介绍在C/C++里面使用的可变参数函数. 先说明可变参数是什么,先回顾一下 ...
- 关于GDI+
原文链接地址:http://www.2cto.com/kf/201107/97283.html 一 介绍 其实本人对GDI+不能算是专家,只是在几个小项目中应用了一些而已, 算是入门了. 刚好最近有点 ...
- [Leetcode] n queens ii n皇后问题
Follow up for N-Queens problem. Now, instead outputting board configurations, return the total numbe ...
- 一个acm过来人的心得
刻苦的训练我打算最后稍微提一下.主要说后者:什么是有效地训练? 我想说下我的理解. 很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了.其实,这既不是充分条件.也不会是 ...
- 线程 packaged_task future
http://www.cnblogs.com/haippy/p/3279565.html #include <iostream> // std::cout #include <fut ...
- B. Light It Up 思维题
Recently, you bought a brand new smart lamp with programming features. At first, you set up a schedu ...
- spring 中的@Import注解和@ImportResource注解
概述:@Import注解是引入带有@Configuration的java类. @ImportResource是引入spring配置文件.xml 案例的核心代码如下: package com.timo. ...
- Junit使用的超简单介绍
Junit使用的超简单介绍 前言:我对Junit了解的并不多,只是今天突然听到有人提到了它,而且现在时间还早,所以我觉得我不妨更一篇关于Junit4的超级超级简单的用法,全当是为了省去看官网demo的 ...
- ${pageContext.request.contextPath}的解释以及和request.contextPath的区别
JSP中究竟采用绝对路径还是采用相对路径随着所采用技术的越来越复杂,这个问题也变得越来越难以解决. 1)采用相对路径遇到的问题 l 相对路径固然比较灵活,但如果想复制页面内的代码却变得比较困难,因为不 ...