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是有伸缩能力 ...
随机推荐
- http缓存知多少
很久没有写博客了,趁现在也快过年,最近项目不是很忙,写一篇博客做为2018年的开始,重拾刚毕业的几年前写博客的冲动.http协议是每个程序猿应该需要知道的东西,不管是前端人员还是后端人员,以前在上家公 ...
- git使用笔记(一)入门
By francis_hao Nov 17,2016 本来是想把git的使用笔记写在一个文件里,但是越写越长,最后也不得不分开了.这样也好,每一篇一个侧重,可以写的详细一点. 初学乍练 在l ...
- ng 构建
1.ng 构建和部署 构建:编译和合并ng build 部署:复制dist里面的文件到服务器 2.多环境的支持 配置环境package.json "scripts": { &quo ...
- HDU1013 Digital Roots
http://acm.hdu.edu.cn/showproblem.php?pid=1013 #include<iostream> #include "cstdio" ...
- [洛谷P3942] 将军令
洛谷题目链接:将军令 题目背景 历史/落在/赢家/之手 至少/我们/拥有/传说 谁说/败者/无法/不朽 拳头/只能/让人/低头 念头/却能/让人/抬头 抬头/去看/去爱/去追 你心中的梦 题目描述 又 ...
- 【洛谷 P1651】 塔 (差值DP)
题目链接 题意:\(n\)个木块放到两个塔里,每个木块可放可不放,使得两塔高度相同且高度最大,求最大高度. 这个差值\(DP\)的思维难度还是很大的,没想出来,我就打了一个\(dfs\)骗了好像\(2 ...
- TensorFlow_曲线拟合
# coding:utf-8 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import os ...
- 关于chkrootkit 检查 INFECTED: Possible Malicious Linux.Xor.DDoS installed
chkrootkit检测时,发现一个Xor.DDoS内容,内容如下...Searching for Linux.Xor.DDoS ... INFECTED: Possible Malicious Li ...
- 【 Tomcat 】tomcat8.0 基本参数调优配置
1.优化内核及TCP连接: fs.file-max = # 系统文件描述符总量 net.ipv4.ip_local_port_range = # 打开端口范围 net.ipv4.tcp_max_tw_ ...
- 【 总结 】crontab 使用脚本及直接获取HTTP状态码
一.在crontab里面计划执行的脚本,所有的命令都要写出绝对路径.因为crontab的独立的进程,可能无法直接加载环境变量. 二.在判断网站能否正常访问一般的思路: 1. 判断网站是否能够正常打开. ...