views.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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_members = Group.objects.filter(member__group_id=request.Group.group_id)
  18. if user.username in group_members:
  19. # 此人已在群组里
  20. return HttpResponse(status=421)
  21. else:
  22. groups = Group.objects.filter(group_id=request.Group.group_id)
  23. groups.member.add(user)
  24. groups.save()
  25. return HttpResponse(status=200)
  26. else:
  27. return HttpResponse(status=422)
  28. elif request.method == 'GET':
  29. if DEBUG:
  30. return render(request, 'add_group.html')
  31. else:
  32. return HttpResponse(status=400)
  33. @login_required(login_url='/account/login/')
  34. def leave_group(request):
  35. if request == 'post':
  36. user = User.objects.filter(username=request.user.username)
  37. if user:
  38. # 查找此人是否已经在群组里
  39. group_members = Group.objects.filter(member__group_id=request.Group.group_id)
  40. if user.username in group_members:
  41. # 此人已在群组里
  42. return HttpResponse(status=421)
  43. else:
  44. groups = Group.objects.filter(group_id=request.Group.group_id)
  45. groups.member.delete(user)
  46. groups.save()
  47. return HttpResponse(status=200)
  48. else:
  49. return HttpResponse(status=422)
  50. elif request.method == 'GET':
  51. if DEBUG:
  52. return render(request, 'add_group.html')
  53. else:
  54. return HttpResponse(status=400)
  55. # 获取你所在的所有群组
  56. @login_required(login_url='/account/login/')
  57. def group_list(request):
  58. if request.method == 'POST':
  59. # 获取群组
  60. groups = Group.objects.filter(group_id__member=request.user.username)
  61. response = groups
  62. return HttpResponse(json.dumps(response), status=200)
  63. elif request.method == 'GET':
  64. if DEBUG:
  65. return render(request, 'group_list.html')
  66. else:
  67. return HttpResponse(status=400)