配置讲师详情页
继承继承base页面
{% extends 'base.html' %}
{% block title %}课程讲师列表 - X.xx在线网{% endblock %}
{% load staticfiles %}
{% block custom_bread %}
<section>
<div class="wp">
<ul class="crumbs">
<li><a href="/">首页</a>></li>
<li>课程讲师</li>
</ul>
</div>
</section>
{% endblock %}
配置改动部分
{% block content %}
<section>
<div class="wp butler_list_box list">
<div class='left'>
<div class="butler_list layout">
<div class="head">
<ul class="fl tab_header">
<li {% if sort == '' %}class="active"{% endif %}><a href="?sort=">全部</a> </li>
<li {% if sort == 'hot' %}class="active"{% endif %}><a href="?sort=hot">人气 ↓</a></li>
</ul>
<div class="fr butler-num">共<span class="key">{{ teacher_nums }}</span>人 </div>
</div>
{% for teacher in all_teachers.object_list %}
<dl class="des">
<dt>
<a href="{% url 'org:teacher_detail' teacher.id %}">
<div class="picpic">
<img width="100" height="100" class="scrollLoading" src="{{ MEDIA_URL }}{{ teacher.image }}"/>
</div>
</a>
<div class="btn">
<div class="fr btn2 bdsharebuttonbox"
data-text="授课教师-奥巴马-慕学在线"
data-desc="我在#慕课网#发现了教师“奥巴马”,对学习中的小伙伴很有帮助,一起来看看吧。"
data-comment="奥巴马金牌讲师,从业年限:5年"
>
<span class="fl">分享</span>
<a href="#" class="bds_more" data-cmd="more"></a>
</div>
</div>
</dt>
<dd>
<a href="{% url 'org:teacher_detail' teacher.id %}">
<h1>{{ teacher.name }}<span class="key picbig">金牌讲师</span></h1>
</a>
<ul class="cont">
<li>工作年限:<span>{{ teacher.work_years }}年</span></li>
<li>工作职位:<span>{{ teacher.work_position }}</span></li>
<li>就职公司:<span>{{ teacher.work_company }}</span></li>
<li>年龄:<span>{{ teacher.age }}</span></li>
<li>教学特点:<span>{{ teacher.points }}</span></li>
</ul>
</dd>
<a class="buy buyservice" href="{% url 'org:teacher_detail' teacher.id %}"><br/>查看<br/>详情</a>
</dl>
{% endfor %}
</div>
<div class="pageturn">
<ul class="pagelist">
{% if all_teachers.has_previous %}
<li class="long"><a href="?{{ all_teachers.previous_page_number.querystring }}">上一页</a></li>
{% endif %}
{% for page in all_teachers.pages %}
{% if page %}
{% ifequal page all_teachers.number %}
<li class="active"><a href="?{{ page.querystring }}">{{ page }}</a></li>
{% else %}
<li><a href="?{{ page.querystring }}" class="page">{{ page }}</a></li>
{% endifequal %}
{% else %}
<li class="none"><a href="">...</a></li>
{% endif %}
{% endfor %}
{% if all_teachers.has_next %}
<li class="long"><a href="?{{ all_teachers.next_page_number.querystring }}">下一页</a></li>
{% endif %}
</ul>
</div>
</div>
<div class="right layout">
<div class="head">讲师排行榜</div>
{% for hot_teacher in sorted_teacher %}
<dl class="des">
<span class="num fl">1</span>
<a href="/diary/hk_detail/6/">
<dt>
<img width="50" height="50" class="scrollLoading" src="{{ MEDIA_URL }}{{ hot_teacher.image }}"/>
</dt>
</a>
<dd>
<a href="/diary/hk_detail/6/">
<h1 title="{{ hot_teacher.name }}">{{ hot_teacher.name }}</h1>
</a>
<p>工作年限:<span>{{ hot_teacher.work_years }}年</span></p>
</dd>
</dl>
{% endfor %}
</div>
</div>
</section>
{% endblock %}
项目目录配置URL
机构app中配置URL
编写视图函数
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') # 排行榜讲师 sorted_teacher = Teacher.objects.all().order_by('-click_nums')[:3] # 对课程讲师进行分页 try: page = request.GET.get('page', 1) except PageNotAnInteger: page = 1 p = Paginator(all_teachers, 3, request=request) teachers = p.page(page) teacher_nums = all_teachers.count() return render(request, 'teachers-list.html', { 'all_teachers': teachers, 'sort': sort, 'sorted_teacher': sorted_teacher, 'teacher_nums': teacher_nums }) class TeacherDetailView(View): """ 讲师详情页 """ def get(self, request, teacher_id): teacher = Teacher.objects.get(id=int(teacher_id)) all_course = Course.objects.filter(teacher=teacher) # 排行榜讲师 sorted_teacher = Teacher.objects.all().order_by('-click_nums')[:3] return render(request, 'teacher-detail.html', { 'teacher': teacher, 'all_course': all_course, 'sorted_teacher': sorted_teacher })