32、Django实战第32天:我的收藏
我的收藏有3个页面:课程机构,授课教师,公开课程
课程机构
1、编辑usercenter-fav-org.html继承usercenter-base.html

2、编辑users.views.py
...
from operation.models import UserFavorite class MyFavOrgView(LoginRequiredMixin, View):
def get(self, request):
user_orgs = UserFavorite.objects.filter(user=request.user, fav_type=2)
org_ids = [user_org.fav_id for user_org in user_orgs]
orgs = CourseOrg.objects.filter(id__in=org_ids) return render(request, 'usercenter-fav-org.html', {
'orgs': orgs,
})
3、编辑users.urls.py
...
from .views import MyFavOrgView urlpatterns = [
...
url(r'myfav_org/$', MyFavOrgView.as_view(), name='myfav_org'),
]
4、编辑usercenter-base.html修改导航链接

5、编辑usercenter-fav-org.html数据动态展示

授课教师
1、编辑usercenter-fav-teacher.html继承usercenter-base.html
2、编辑users.views.py
...
from organization.models import Teacher class MyFavTeacherView(View):
def get(self, request):
fav_teachers = UserFavorite.objects.filter(user=request.user, fav_type=3)
teacher_ids = [fav_teacher.fav_id for fav_teacher in fav_teachers]
teachers = Teacher.objects.filter(id__in=teacher_ids) return render(request, 'usercenter-fav-teacher.html',{
'teachers': teachers,
})
3、编辑users.urls.py
...
from .views import MyFavTeacherView urlpatterns = [
...
url(r'myfav_teacher/$', MyFavTeacherView.as_view(), name='myfav_teacher'),
]
4、编辑usercenter-fav-teacher.html和usercenter-fav-org.html修改导航链接

5、编辑usercenter-fav-teacher.html动态数据展示

公开课程
1、编辑usercenter-fav-course.html,继承usercenter-base.html
2、users.views.py
class MyFavCourseView(LoginRequiredMixin, View):
def get(self, request):
fav_courses = UserFavorite.objects.filter(user=request.user, fav_type=1)
course_ids = [fav_course.fav_id for fav_course in fav_courses]
courses = Course.objects.filter(id__in=course_ids)
return render(request, 'usercenter-fav-course.html', {
'courses': courses,
})
3、编辑users.urls.py
...
from .views import MyFavCourseView urlpatterns = [
...
url(r'myfav_course/$', MyFavCourseView.as_view(), name='myfav_course'),
]
4、编辑usercenter-fav-course.html

删除收藏
这个功能可以直接调用我们之前写的皆苦
修改usercenter-fav-org.html

修改usercenter-fav-teacher.html

修改usercenter-fav-course.html

编辑usercenter-base.html
<script type="text/javascript">
$('.jsDeleteFav_course').on('click', function(){
var _this = $(this),
favid = _this.attr('data-favid');
alert(favid)
$.ajax({
cache: false,
type: "POST",
url: "{% url 'org:add_fav' %}",
data: {
fav_type: 1,
fav_id: favid,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
async: true,
success: function(data) {
Dml.fun.winReload();
}
});
}); $('.jsDeleteFav_teacher').on('click', function(){
var _this = $(this),
favid = _this.attr('data-favid');
$.ajax({
cache: false,
type: "POST",
url: "{% url 'org:add_fav' %}",
data: {
fav_type: 3,
fav_id: favid,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
async: true,
success: function(data) {
Dml.fun.winReload();
}
});
}); $('.jsDeleteFav_org').on('click', function(){
var _this = $(this),
favid = _this.attr('data-favid');
$.ajax({
cache: false,
type: "POST",
url: "{% url 'org:add_fav' %}",
data: {
fav_type: 2,
fav_id: favid,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
async: true,
success: function(data) {
Dml.fun.winReload();
}
});
});
</script>
32、Django实战第32天:我的收藏的更多相关文章
- GraphQL + React Apollo + React Hook 大型项目实战(32 个视频)
GraphQL + React Apollo + React Hook 大型项目实战(32 个视频) GraphQL + React Apollo + React Hook 大型项目实战 #1 介绍「 ...
- CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决
Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...
- 从零开始部署Django生产环境(适用:《跟老齐学Python Django实战》)
<跟老齐学Python Django实战>作为市面上少有的Django通俗实战书籍,给了我学习Django很大的帮助.作为一名新入门的菜鸟,全书我重复练习了至少三遍,每次都有新的收获. 前 ...
- 32.Django form组件
Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 创建Form类时,主要涉及到 [ ...
- 前端每日实战:32# 视频演示如何用纯 CSS 创作六边形按钮特效
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/xjoOeM 可交互视频教程 此视频 ...
- 【机器学习实战笔记(3-2)】朴素贝叶斯法及应用的python实现
文章目录 1.朴素贝叶斯法的Python实现 1.1 准备数据:从文本中构建词向量 1.2 训练算法:从词向量计算概率 1.3 测试算法:根据现实情况修改分类器 1.4 准备数据:文档词袋模型 2.示 ...
- Django笔记&教程 3-2 模板语法介绍
Django 自学笔记兼学习教程第3章第2节--模板语法介绍 点击查看教程总目录 参考:https://docs.djangoproject.com/en/2.2/topics/templates/# ...
- 32、Flask实战第32天:优化json数据的返回
接着上节,我们通过jsonify返回json数据非常方便 ... return jsonify({"code": 400, "message": message ...
- Flutter移动电商实战 --(32)列表页_小类高亮交互效果制作
点击大类右侧的横向的小类红色显示当前的小类别 解决之前溢出的问题: 先解决一个bug,之前右侧的这里设置的高度是1000,但是有不同的虚拟机和手机设别的问题造成了溢出的问题 Expaned是有伸缩能力 ...
随机推荐
- MySQL事物机制具备四点:简称ACID操作
MySQL事物机制具备四点:简称ACID操作 1.原子性:要么都做,要么都不做(两条数据(写入和存储)一步未成功,整体回滚) 2.一致性:数据库的状态改变(两条数据(写入和存储)均成功,符合原子性,但 ...
- CentOs7 minimal安装后没有ifconfig命令解决方法
没有ifconfig命令目前我了解两个原因: 1./sbin/ifconfig 可以执行,但是ifconfig无法执行.这个解决的时候只需要将/sbin 添加到PATH下就可以了. 2.系统未安装if ...
- HDU1859 最小长方形 (水
最小长方形 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- docker公司测试环境搭建总结
1.防火墙转发规则: [root@docker ~]# firewall-cmd --list-allpublic (active) target: default icmp-block-invers ...
- CI框架浅析
CI框架浅析(全篇) 业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很 ...
- maven 压缩、合并 js, css
转载自:http://blog.csdn.net/fangxing80/article/details/17639607 我们知道在 Web 应用开发中为了提高客户端响应速度,需要将页面使用的资源最小 ...
- [POJ1637]混合图的欧拉回路判定|网络流
混合图的欧拉回路判定 上一篇正好分别讲了有向图和无向图的欧拉回路判定方法 如果遇上了混合图要怎么做呢? 首先我们思考有向图的判定方法:所有点的出度=入度 我们可以先为无向边任意定一个向,算出此时所有顶 ...
- KVM基本概念
在kvm技术中,应用到的两个东西:qemu和kvm.其中kvm负责cpu虚拟化和内存虚拟化,但是kvm不能模拟其他设备,qemu是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上的 ...
- 转一篇CF题目的博客
题意: 给你一颗n(n<=10^5)个节点树根为1的树,然后进行dfs,求每个点,在dfs中被访问时间的期望. let starting_time be an array of length n ...
- [ Openstack ] Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs 高可用集群
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...