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天:讲师列表页的更多相关文章

  1. mxonline实战13,授课讲师列表页,详情页,index页面全局导航

    对应github地址:第13天   把teacher-list.html和teacher-detail.html拷贝过来   一. 授课讲师列表页   1. 修改html文件 把org-list.ht ...

  2. 微信小程序 项目实战(三)list 列表页 及 item 详情页

    1.项目结构 2.list 列表页 (1)数据(逻辑) list.js // pages/list/list.js Page({ /** * 页面的初始数据 */ data: { title: '加载 ...

  3. [Django实战] 第8篇 - 分页列表

    当用户登录成功后,首先看到的是他自己之前提交的任务列表,本篇将实现该页面. 视图(views.py)里定义如下: from django.core.paginator import Paginator ...

  4. 14、Django实战第14天:列表筛选功能

    今天完成的是点击这些条件进行机构的筛选 首先来完成城市:当用户点击城市的时候,我们自动给它加一个参数(city.id) 编辑organization.views.py 刷新页面,发现筛选功能已经OK了 ...

  5. 25、Django实战第25天:讲师详情页

    1.复制teacher-detail.html到templates目录下 2.编辑teacher-detail.html,继承base.html 3.编辑organization.view.py cl ...

  6. iOS 杂笔-24(常用类到NSObject的继承列表)

    iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...

  8. 19、Django实战第19天:课程列表页

    从今天开始,我们将完成"公开课"课程的相关功能..... 1.把course-list.html复制到templates目录下 2.这个页面的头部.底部与之前定义的base.htm ...

  9. 13、Django实战第13天:分页列表功能

    我们看课程 机构列表页是需要分页的 为了完成分页功能,我们需要用到Django的一个开源开发库django-pure-pagination workon mxonline pip install dj ...

随机推荐

  1. 02.Java面向对象问题

    目录介绍 2.0.0.1 重载和重写的区别?重载和重写绑定机制有何区别?父类的静态方法能否被子类重写? 2.0.0.2 封装.继承.多态分别是什么? 2.0.0.3 接口和抽象类的区别是什么?接口的意 ...

  2. 洛谷 P2414 [NOI2011]阿狸的打字机 解题报告

    P2414 [NOI2011]阿狸的打字机 题目背景 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机. 题目描述 打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母 ...

  3. Android中代码设置RadioButton的高端技巧

    不知道怎么起标题,就这样了. 目前主要讲两个方面内容: 代码方式 设置RadioButton的 android:button . android:background 等属性为 @null : 代码方 ...

  4. Angular 监听路由变化

    var app = angular.module('Mywind',['ui.router']) //Angular 监听路由变化 function run($ionicPlatform, $loca ...

  5. 小K的农场

    小K的农场 题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了 ...

  6. HDU 1698 Just a Hook(线段树

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  7. Java多线程1:Java中sleep,wait,yield,join的区别

    1.sleep()方法 在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”.不推荐使用. sleep()使当前线程进入阻塞状态,在指定时间内不会执行. 2.wait()方法 在其他线程调用 ...

  8. DOM操作的一个小坑

    最近在苦读<JavaScript高级程序教程>,真不愧是前端圣经,学到了很多东西. nodeList.NameNodeMap.HTMLCollection这三个集合是动态的!每当文档发生变 ...

  9. Spring - IoC(12): 属性占位符

    使用属性占位符可以将 Spring 配置文件中的部分元数据放在属性文件中设置,这样可以将相似的配置(如 JDBC 的参数配置)放在特定的属性文件中,如果只需要修改这部分配置,则无需修改 Spring ...

  10. UVa 12265 贩卖土地 单调栈

    题意 输入一个\(n\times m\)的矩阵,每个格子可能是空地,也可能是沼泽.对于每个空地格子,求出以它为右下角的空矩形的最大周长,然后统计每个周长出现了多少次. 思路 对于 每一行 每两个沼泽之 ...