(七)Django 在线平台(详情页配置)

本文详细介绍了如何在Django项目中配置讲师详情页面,包括继承base页面,进行必要的配置改动,设置URL路由,以及编写视图函数,实现功能完整性的展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置讲师详情页


继承继承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
        })


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值