views.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import random
  2. import string
  3. from django.http import HttpResponse
  4. from django.shortcuts import render
  5. from account.decorators import login_required
  6. from .models import Folder
  7. from file.models import File
  8. import json
  9. # Create your views here.
  10. DEBUG = 1
  11. @login_required
  12. def get_first_folder(request):
  13. if request.method == 'POST':
  14. # 获取所有根文件夹id
  15. folders = Folder.objects.filter(father_folder=None)
  16. response = []
  17. for i in folders:
  18. response.append([i.folder_name, i.folder_id])
  19. return HttpResponse(json.dumps(response), status=200)
  20. elif request.method == 'GET':
  21. if DEBUG:
  22. return render(request, 'folder_list.html')
  23. else:
  24. return HttpResponse(status=400)
  25. # 在根目录下列出所有文件夹与文件
  26. @login_required
  27. def folder_list(request):
  28. if request.method == 'POST':
  29. data = request.POST
  30. # 获取所有文件夹
  31. folders = Folder.objects.filter(father_folder__folder_id=data['folder_id'])
  32. files = File.objects.filter(folder__folder_id=data['folder_id'])
  33. response = []
  34. for i in folders:
  35. response.append(['folders', i.folder_name, i.folder_id])
  36. for i in files:
  37. response.append(['files', i.file_name, i.file_id, i.file_path, i.file_id, i.update_time, i.file_type, i.file_size])
  38. return HttpResponse(json.dumps(response), status=200)
  39. elif request.method == 'GET':
  40. if DEBUG:
  41. return render(request, 'folder_list.html')
  42. else:
  43. return HttpResponse(status=400)
  44. # 父文件夹id 子文件夹名字
  45. # 增文件夹
  46. @login_required
  47. def add_folder(request):
  48. if request.method == 'POST':
  49. data = request.POST
  50. folder_id_random = ''.join(random.sample(string.digits, 8))
  51. father_folder = Folder.objects.filter(folder_id=data['father_folder_id']).get()
  52. print(data)
  53. if not father_folder:
  54. # 查无此文件夹
  55. return HttpResponse(status=421)
  56. else:
  57. if 'folder_name' in data:
  58. print('yes')
  59. Folder.objects.create(folder_id=folder_id_random,
  60. folder_name=data.get("folder_name"),
  61. father_folder=father_folder)
  62. return HttpResponse(status=200)
  63. elif request.method == 'GET':
  64. if DEBUG:
  65. return render(request, 'add_folder.html')
  66. else:
  67. return HttpResponse(status=400)
  68. # 删除文件夹
  69. @login_required
  70. def delete_folder(request):
  71. if request.method == 'POST':
  72. data = request.POST
  73. folder = Folder.objects.filter(folder_id=data['folder_id']).get()
  74. if not folder:
  75. # 查无此文件夹
  76. return HttpResponse(status=421)
  77. else:
  78. folder.delete()
  79. return HttpResponse(status=200)
  80. elif request.method == 'GET':
  81. if DEBUG:
  82. return render(request, 'delete_folder.html')
  83. else:
  84. return HttpResponse(status=400)