views.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from django.http import HttpResponse
  2. from django.shortcuts import render
  3. from django.contrib.auth.decorators import login_required
  4. from models import Group
  5. from django.contrib.auth.models import User
  6. import json
  7. # Create your views here.
  8. DEBUG = 1
  9. # 首先是 加入/退出 群组,客户端发送申请,把该用户直接 加入/删除 该群组的对象
  10. @login_required(login_url='/account/login/')
  11. def add_group(request):
  12. if request.method == 'post':
  13. # 查找是否有此人
  14. user = User.objects.filter(username=request.user.username)
  15. if user:
  16. # 查找此人是否已经在群组里
  17. group = Group.objects.filter(group_id=request.Group.group_id).get()
  18. if user in group.member:
  19. # 此人已在群组里
  20. return HttpResponse(status=421)
  21. else:
  22. group.member.add(user)
  23. group.save()
  24. return HttpResponse(status=200)
  25. else:
  26. return HttpResponse(status=422)
  27. elif request.method == 'GET':
  28. if DEBUG:
  29. return render(request, 'add_group.html')
  30. else:
  31. return HttpResponse(status=400)
  32. @login_required(login_url='/account/login/')
  33. def leave_group(request):
  34. if request.method == 'post':
  35. # 查找是否有此人
  36. user = User.objects.filter(username=request.user.username)
  37. if user:
  38. # 查找此人是否已经在群组里
  39. group = Group.objects.filter(group_id=request.Group.group_id).get()
  40. if user in group.member:
  41. # 此人已在群组里
  42. return HttpResponse(status=421)
  43. else:
  44. group.member.delete(user)
  45. group.save()
  46. return HttpResponse(status=200)
  47. else:
  48. return HttpResponse(status=422)
  49. elif request.method == 'GET':
  50. if DEBUG:
  51. return render(request, 'leave_group.html')
  52. else:
  53. return HttpResponse(status=400)
  54. # 获取你所在的所有群组
  55. @login_required(login_url='/account/login/')
  56. def group_list(request):
  57. if request.method == 'POST':
  58. # 获取群组
  59. groups = Group.objects.filter(member__username=request.user.username)
  60. response = []
  61. for i in groups:
  62. response.append(i)
  63. return HttpResponse(json.dumps(response), status=200)
  64. elif request.method == 'GET':
  65. if DEBUG:
  66. return render(request, 'group_list.html')
  67. else:
  68. return HttpResponse(status=400)