一、退出功能
C:\Users\hlg\PycharmProjects\MxOnline\apps\users\views.py
class LogoutView(View):
"""
用户登出
from django.contrib.auth import authenticate, login, logout
"""
def get(self, request):
logout(request)
# 重定向
# from django.http import HttpResponse, HttpResponseRedirect
from django.core.urlresolvers import reverse
return HttpResponseRedirect(reverse("index"))
<a class="fr" href="{% url 'logout' %}">退出</a>
二、点击数
三、收藏数
C:\Users\hlg\PycharmProjects\MxOnline\apps\organization\views.py
class AddFavView(View):
"""
用户收藏 用户取消收藏
"""
def post(self, request):
fav_id = request.POST.get('fav_id', '0')
fav_type = request.POST.get('fav_type', '0')
if not request.user.is_authenticated():
# 判断用户登录状态
return HttpResponse('{"status": "fail", "msg": "用户未登录"}', content_type='application/json')
exist_records = UserFavorite.objects.filter(user=request.user, fav_id=int(fav_id), fav_type=int(fav_type))
if exist_records:
# 如果记录已经存在, 则表示用户取消收藏
exist_records.delete()
if int(fav_type) == 1:
course = Course.objects.get(id=int(fav_id))
course.fav_nums -= 1
if course.fav_nums < 0:
course.fav_nums = 0
course.save()
elif int(fav_type) == 2:
course_org = CourseOrg.objects.get(id=int(fav_id))
course_org.fav_nums -= 1
if course_org.fav_nums < 0:
course_org.fav_nums = 0
course_org.save()
elif int(fav_type) == 3:
teacher = Teacher.objects.get(id=int(fav_id))
teacher.fav_nums -= 1
if teacher.fav_nums < 0:
teacher.fav_nums = 0
teacher.save()
else:
user_fav = UserFavorite()
if int(fav_id) > 0 and int(fav_type) > 0:
user_fav.user = request.user
user_fav.fav_id = int(fav_id)
user_fav.fav_type = int(fav_type)
user_fav.save()
if int(fav_type) == 1:
course = Course.objects.get(id=int(fav_id))
course.fav_nums += 1
course.save()
elif int(fav_type) == 2:
course_org = CourseOrg.objects.get(id=int(fav_id))
course_org.fav_nums += 1
course_org.save()
elif int(fav_type) == 3:
teacher = Teacher.objects.get(id=int(fav_id))
teacher.fav_nums += 1
teacher.save()
return HttpResponse('{"status": "success", "msg": "已收藏"}', content_type='application/json')
else:
return HttpResponse('{"status": "fail", "msg": "收藏出错"}', content_type='application/json')
个人消息