25、Django实战第25天:讲师详情页
1、复制teacher-detail.html到templates目录下
2、编辑teacher-detail.html,继承base.html

3、编辑organization.view.py
class TeacherDetailView(View):
def get(self, request, teacher_id):
teacher = Teacher.objects.get(id=teacher_id)
return render(request, 'teacher-detail.html', {
'teacher': teacher,
})
4、配置url,编辑organization.urls.py
from .views import teacherDetailView urlpatterns = [
...
url(r'/teacher/detail/(?P<teacher_id>\d+)/$', TeacherDetailView.as_view(), name='teacher_detail'), ]
5 、在讲师列表页把进入讲师详情页的地址修改


讲师信息展示

机构信息展示

讲师排行榜
编辑organization.views.py
class TeacherDetailView(View):
def get(self, request, teacher_id):
teacher = Teacher.objects.get(id=teacher_id)
rank_teachers = Teacher.objects.all().order_by('-click_nums')[:2]
return render(request, 'teacher-detail.html', {
'teacher': teacher,
'rank_teachers':rank_teachers,
})
前端页面展示

讲师全部课程
编辑organization.views.py
...
from courses.models import Course class TeacherDetailView(View):
def get(self, request, teacher_id):
teacher = Teacher.objects.get(id=teacher_id)
rank_teachers = Teacher.objects.all().order_by('-click_nums')[:2] courses = Course.objects.filter(teacher=teacher)
return render(request, 'teacher-detail.html', {
'teacher': teacher,
'rank_teachers':rank_teachers,
'courses': courses,
})
前端展示

收藏功能 和增加点击次数
编辑organization.view.py
class TeacherDetailView(View):
def get(self, request, teacher_id):
teacher = Teacher.objects.get(id=teacher_id)
rank_teachers = Teacher.objects.all().order_by('-click_nums')[:2] # 增加点击次数
teacher.click_nums += 1
teacher.save() # 收藏
has_teracher_fav = False
has_org_fav = False
if request.user.is_authenticated():
if UserFavorite.objects.filter(user=request.user, fav_id=teacher.id, fav_type=3):
has_teracher_fav = True
if UserFavorite.objects.filter(user=request.user, fav_id=teacher.org.id, fav_type=2):
has_org_fav = True courses = Course.objects.filter(teacher=teacher)
return render(request, 'teacher-detail.html', {
'teacher': teacher,
'rank_teachers':rank_teachers,
'courses': courses,
'has_teracher_fav': has_teracher_fav,
'has_org_fav': has_org_fav,
})
编辑teacher-detail.html中的js

前端判断显示


25、Django实战第25天:讲师详情页的更多相关文章
- mxonline实战13,授课讲师列表页,详情页,index页面全局导航
对应github地址:第13天 把teacher-list.html和teacher-detail.html拷贝过来 一. 授课讲师列表页 1. 修改html文件 把org-list.ht ...
- 潭州课堂25班:Ph201805201 django 项目 第二十三课 文章主页 轮播图前端实现 热门新闻推荐实现 详情页实现 (课堂笔记)
前台代码 // 在static/js/news/index.js文件中 $(function () { // 新闻列表功能 let $newsLi = $(".news-nav ul li& ...
- 17、Django实战第17天:机构详情展示
1.进入xadmin添加测试数据(教师.课程) 2.把以下4个前端页面复制到templates中 先打开这几个页面分析,它们和之前的课程机构列表页是不一样的机构,且没有共同的部分,但是这4个页面却是类 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)]
[易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep. 我们现 ...
- 20、Django实战第20天:课程详情页
1.把course-detail.html复制到templates目录下 2.编辑course-detail.html,分析页面,继承base.html 3.编辑courses.views .... ...
- java亿级流量电商详情页系统的大型高并发与高可用缓存架构实战视频教程
亿级流量电商详情页系统的大型高并发与高可用缓存架构实战 完整高清含源码,需要课程的联系QQ:2608609000 1[免费观看]课程介绍以及高并发高可用复杂系统中的缓存架构有哪些东西2[免费观看]基于 ...
- Django实战之古风博客
感谢 感谢杨青 大大的古风模板,设计的很棒,给个赞. 如有侵权,请联系我 运行环境 python3.6 Django==1.11.4 django-ckeditor==5.4.0 django-js- ...
- 21、Django实战第21天:课程章节信息
在课程详情页中,点击"开始学习",就进入到这课程章节信息,这里面包含了两个页面:"章节"和评论 1.把course-video.html(章节).course- ...
- [django]详情页列表页
详情页列表页 列表页展示titile--这个模型的部分字段 详情页展示这个模型的所有字段 我想看下related_name这个从主表取子表数据 取数据--官网投票例子 https://docs.dja ...
随机推荐
- POJ3261 Milk Patterns 【后缀数组】
牛奶模式 时间限制: 5000MS 内存限制: 65536K 提交总数: 16796 接受: 7422 案件时间限制: 2000MS 描述 农夫约翰已经注意到,他的牛奶的质量每天都在变化.经进 ...
- git使用笔记(二)分支与合并
By francis_hao Nov 18,2016 查看分支,* 表示当前所在分支 $ git branch 查看分支和最后一次提交记录 $ git branch -v 新建分支 $ git ...
- D. Equalize the Remainders (set的基本操作)
D. Equalize the Remainders time limit per test 3 seconds memory limit per test 256 megabytes input s ...
- js操作div的显隐
<!DOCTYPE html><html> <head> <title> new document </title> <meta ht ...
- Linux Top 命令参数解析
转载自:http://www.jb51.net/LINUXjishu/34604.html TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户 ...
- .NET之特性和属性(转)
1. 引言 attribute是.NET框架引入的有一技术亮点,因此我们有必要花点时间走进一个发现attribute登堂入室的入口.因为.NET Framework中使用了大量的定制特性来完成代码约定 ...
- shell分发文件脚本
配置文件scp.conf ssh_hosts=("IP") #需要分发机器的所有IP ssh_ports=("22") ssh_users=("roo ...
- AQS同步组件及ReentrantLock和synchronized的区别
AQS同步组件 CountDownLatch(只有一个线程对他进行操作): 主线程必须在启动其它线程后立即调用await()方法.这样主线程的操作就会在这个方法上阻塞,直到其它线程完成各自的任务. S ...
- bzoj 1061 志愿者招募 费用流
详见BYV的博客,写的非常全面https://www.byvoid.com/blog/noi-2008-employee /************************************** ...
- linux察看安装包有那些
rpm -ql zsh |more 安装完之后,产生那些内容 which zsh rpm -qpl /mnt/packages/ rpm -Uvh /mnt/packages/lrzsz-0.2. ...