东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2671|回复: 1
打印 上一主题 下一主题

[课堂笔记] 46、python_django_web开发_完成相关课程的推荐与给View加验证_...

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14431
QQ
跳转到指定楼层
楼主
发表于 2017-12-8 19:27:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


46、python_django_web开发_完成相关课程的推荐与给View加验证_笔记


学过这门课程的同学 还学过什么其他课程
  1. # 学过这门课程的用户的id
  2. user_courses = course.usercourse_set.all()
  3. user_ids = [user_course.user.id for user_course in user_courses]

  4. # 所有的用户 查询每个用户学习的课程 肯定有重复的
  5. # __in的意思是只要这个user_id在列表user_ids里面 我们都会把记录返回 django model用法
  6. all_user_courses = UserCourse.objects.filter(user_id__in=user_ids)

  7. # 下面来取课程的id
  8. course_ids = [all_user_course.course.id for all_user_course in all_user_courses]
  9. # 根据课程id来取课程对象
  10. relate_courses = Course.objects.filter(id__in=course_ids).order_by('-click_num')[:5]
复制代码

进入view之前必须确保用户已经登录了 涉及给view添加验证

View进来之前进行一个用户登录的验证 mixin一般放基础的view用来被继承
  1. from django.contrib.auth.decorators import login_required
  2. from django.utils.decorators import method_decorator
  3. __author__ = 'dongfangyao'
  4. __date__ = '2017/11/29 下午4:49'
  5. __product__ = 'PyCharm'
  6. __filename__ = 'mixin_utils'


  7. class LoginRequiredMixin(object):

  8.     @method_decorator(login_required(login_url='/login/'))
  9.     def dispatch(self, request, *args, **kwargs):
  10.         return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
复制代码

用户点击开始学习按钮后 必须将用户与课程进行关联
  1. # 查询用户是否已经关联了课程
  2. user_course_exist = UserCourse.objects.filter(user=request.user, course=course)
  3. if not user_course_exist:
  4.     user_course_object = UserCourse(user=request.user, course=course)
  5.     user_course_object.save()
复制代码



让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

132

帖子

278

积分

人工智能VIP

Rank: 9Rank: 9Rank: 9

积分
278
沙发
发表于 2017-12-14 14:52:24 | 只看该作者
1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-4-24 03:59 , Processed in 0.174408 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表