Django网站建设-我的课程,我的收藏,内容显示判断

1.模板配置
2.url配置
3.视图逻辑,filter过滤,分页处理

我的课程

配置url

url(r'^my_courses/$', MyCourseView.as_view(), name='my_courses'),

配置视图逻辑

class MyCourseView(View):
    def get(self,request):
        user_id = request.user.id
        my_courses = UserCourse.objects.filter(User_id=user_id)
        return render(request,'usercenter_mycourse.html',{'my_courses':my_courses})

模板配置

{% block content_right %}
    

我的课程

{% for course in my_courses %}

{{ course.Course.CourseName }}

课时:{{ course.Course.LearnTime }} 学习人数:{{ course.Course.Students }}
{{ course.Course.Organization }} {{ course.Course.FavouriteNumber }}
{% endfor %}
{% endblock %}

我的收藏

配置url

url(r'^my_fav/$', MyFavView.as_view(), name='my_fav'),

配置视图逻辑,利用用户信息(user)进行过滤获取用户收藏信息(UserFavorite),通过FavoriteType进行判断收藏信息类型。从模板中get到chioce选项,利用choice进行判断,判断返回数据类型

class MyFavView(View):
    def get(self,request):
        choice = request.GET.get('choice')
        if not request.user.is_authenticated():
            return HttpResponseRedirect('/login/')  # 转到来时页面
        user_id = request.user.id
        my_fav = UserFavorite.objects.filter(User_id=user_id)
        fav_course_id = my_fav.filter(FavoriteType=1)
        fav_organization_id = my_fav.filter(FavoriteType=2)
        fav_teacher_id = my_fav.filter(FavoriteType=3)
        #get选择项

        #加入筛选逻辑
        fav = []
        #获取所有收藏课程
        if choice == 'course':
            for i in fav_course_id:
                course = Course.objects.get(id=i.FavoriteID)
                fav.append(course)
        #获取所有收藏组织
        if choice == 'organization':
            for i in fav_organization_id:
                fav.append(CourseOrganization.objects.get(id=i.FavoriteID))
        #获取所有收藏老师
        if choice == 'teacher':
            for i in fav_teacher_id:
                fav.append(Teacher.objects.get(id=i.FavoriteID))
        return render(request,'usercenter_fav.html',{'fav':fav,'choice':choice})

返回fav参数和choice参数,根据choice参数判断返回参数类型,判断显示内容,通过fav参数获取显示内容信息

{% block content_right %}
        

我的收藏

{# 机构 #} {% if choice == 'organization' %} {% for f in fav %}

{{ f.Organization }}

{{ f.City }}
{% endfor %} {% endif %} {# 老师 #} {% if choice == 'teacher' %} {% for f in fav %}

{{ f.TeacherName }}认证教师

  • 工作年限:{{ f.WorkLife }}年
  • 课程数:2
  • 工作公司:{{ f.BelongOrganization }}
  • 公司职位:{{ f.WorkPosition }}
{% endfor %} {% endif %} {# 公开课程 #} {% if choice == 'course' %} {% for f in fav %}

{{ f.CourseName }}

时长:{{ f.LearnTime }} 学习人数:{{ f.Students }}
{{ f.Organization }}
{% endfor %} {% endif %}
{% endblock %}

我的信息

1.配置我的信息路由地址url
2.配置视图逻辑,配置分页功能
3.配置模板函数,注意分页处理后的object_list对象
4.注册的时候写入用户信消息,学习课程的时候写入用户消息
5.完成我的信息逻辑,包括学习信息通知

你可能感兴趣的:(django)