8-1 课程列表

一,把 course-list.html拷贝到templates 目录下

C:\Users\hlg\PycharmProjects\MxOnline\templates\course-list.html

{% extends 'base.html' %}
{% block title %}公开课列表 - 慕学在线网{% endblock %}
{% load staticfiles %}
{% block custom_bread %}
    <section>
        <div class="wp">
            <ul  class="crumbs">
                <li><a href="index.html">首页</a>></li>
                <li>公开课</li>
            </ul>
        </div>
    </section>
{% endblock %}
{% block content %}
    <section>
	<div class="wp">
		<div class="list" style="margin-top:0;">
			<div class="left layout">
				<div class="head">
					<ul class="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>
						<li {% if sort == 'students' %}class="active"{% endif %}><a href="?sort=students">参与人数</a></li>
					</ul>
				</div>
                <div id="inWindow">
                    <div class="tab_cont " id="content">
					<div class="group_list">
                        {% for course in all_courses.object_list %}
                            <div class="box">
                                <a href="course-detail.html">
                                    <img width="280" height="350" class="scrollLoading" src="{{ MEDIA_URL }}{{ course.image }}"/>
                                </a>
                                <div class="des">
                                    <a href="course-detail.html">
                                        <h2>{{ course.name }}</h2>
                                    </a>
                                    <span class="fl">时长:<i class="key">{{ course.learn_times }}</i></span>
                                    <span class="fr">学习人数:{{ course.students }}</span>
                                </div>
                                <div class="bottom">
                                    <a href="course-detail.html"><span class="fl">来自{{ course.course_org.name }}</span></a>
                                    <span class="star fr  notlogin
                                        " data-favid="15">
                                        {{ course.fav_nums }}
                                    </span>
                                </div>
                            </div>

                        {% endfor %}


					</div>
                    <div class="pageturn">
                        <ul class="pagelist">
                            {% if all_courses.has_previous %}
                                <li class="long"><a href="?{{ all_courses.previous_page_number.querystring }}">上一页</a></li>
                            {% endif %}

                            {% for page in all_courses.pages %}
                                {% if page %}
                                    {% ifequal page all_courses.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_courses.has_next %}
                                <li class="long"><a href="?{{ all_courses.next_page_number.querystring }}">下一页</a></li>
                            {% endif %}

            </ul>
                    </div>
				</div>
                </div>
			</div>
			<div class="right layout">
				<div class="head">热门课程推荐</div>
				<div class="group_recommend">
                    {% for hot_course in hot_courses %}
                    <dl>
						<dt>
							<a target="_blank" href="">
								<img width="240" height="220" class="scrollLoading" src="{{ MEDIA_URL }}{{ hot_course.image }}"/>
							</a>
						</dt>
						<dd>
							<a target="_blank" href=""><h2> {{ hot_course.name }}</h2></a>
							<span class="fl">难度:<i class="key">{{ hot_course.get_degree_display }}</i></span>
						</dd>
					</dl>
                    {% endfor %}



				</div>
			</div>
		</div>
	</div>
</section>
{% endblock %}
# _*_ encoding:utf-8 _*_
from django.conf.urls import url, include

from .views import CourseListView


urlpatterns = [
    # 课程列表页
    url(r'^list/$', CourseListView.as_view(), name="course_list"),
]
C:\Users\hlg\PycharmProjects\MxOnline\apps\courses\views.py
# _*_ encoding:utf-8 _*_
from django.shortcuts import render
from django.views.generic.base import View
from pure_pagination import Paginator, EmptyPage, PageNotAnInteger

from .models import Course

# Create your views here.


class CourseListView(View):
    def get(self, request):
        all_courses = Course.objects.all().order_by("-add_time")
        hot_courses = Course.objects.all().order_by("-click_nums")[:3]

        sort = request.GET.get('sort', "")
        if sort:
            if sort == "students":
                all_courses = all_courses.order_by("-students")
            elif sort == "sort":
                all_courses = all_courses.order_by("-click_nums")

        # 对课程进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        # 一定要3个参数,不然报错
        p = Paginator(all_courses, 5, request=request)

        courses = p.page(page)

        return render(request, 'course-list.html',{
            "all_courses":courses,
            "sort":sort,
            "hot_courses": hot_courses
        })

效果:

















猜你喜欢

转载自blog.csdn.net/huanglianggu/article/details/80752346