views.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 Folder
  5. from file.models import File
  6. from django.contrib.auth.models import User
  7. import json
  8. # Create your views here.
  9. DEBUG = 1
  10. # 在根目录下列出所有文件夹与文件
  11. @login_required(login_url='/account/login/')
  12. def folder_list(request):
  13. if request.method == 'POST':
  14. data = request.POST
  15. # 获取所有文件夹
  16. folders = Folder.objects.filter(father_folder__folder_id=data['folder_id']).get()
  17. files = File.objects.filter(folder__folder_id=data['folder_id']).get()
  18. response = []
  19. for i in folders:
  20. response.append(i)
  21. for i in files:
  22. response.append(i)
  23. return HttpResponse(json.dumps(response), status=200)
  24. elif request.method == 'GET':
  25. if DEBUG:
  26. return render(request, 'folder_list.html')
  27. else:
  28. return HttpResponse(status=400)
  29. # 增文件夹
  30. @login_required(login_url='/account/login/')
  31. def add_folder(request):
  32. if request.method == 'POST':
  33. data = request.POST
  34. folder = Folder.objects.filter(father_folder__folder_id=data['folder_id']).get()
  35. if not folder:
  36. # 查无此文件夹
  37. return HttpResponse(status=421)
  38. else:
  39. Folder.objects.create(folder_id=data['folder_id'],
  40. folder_name=data['folder_name'],
  41. father_folder=folder)
  42. return HttpResponse(status=200)
  43. elif request.method == 'GET':
  44. if DEBUG:
  45. return render(request, 'add_folder.html')
  46. else:
  47. return HttpResponse(status=400)
  48. # 删除文件夹
  49. @login_required(login_url='/account/login/')
  50. def delete_folder(request):
  51. if request.method == 'POST':
  52. data = request.POST
  53. folder = Folder.objects.filter(folder_id=data['folder_id']).get()
  54. if not folder:
  55. # 查无此文件夹
  56. return HttpResponse(status=421)
  57. else:
  58. folder.delete()
  59. return HttpResponse(status=200)
  60. elif request.method == 'GET':
  61. if DEBUG:
  62. return render(request, 'delete_folder.html')
  63. else:
  64. return HttpResponse(status=400)