views.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. # 获取所有文件夹
  15. folders = Folder.objects.filter(father_folder=request.Folder).get()
  16. files = File.objects.filter(folder=request.Folder).get()
  17. response = []
  18. for i in folders:
  19. response.append(i)
  20. for i in files:
  21. response.append(i)
  22. return HttpResponse(json.dumps(response), status=200)
  23. elif request.method == 'GET':
  24. if DEBUG:
  25. return render(request, 'folder_list.html')
  26. else:
  27. return HttpResponse(status=400)
  28. # 增文件夹
  29. @login_required(login_url='/account/login/')
  30. def add_folder(request):
  31. if request.method == 'post':
  32. folder = Folder.objects.filter(father_folder__folder_id=request.Folder.folder_id).get()
  33. if not folder:
  34. # 查无此文件夹
  35. return HttpResponse(status=421)
  36. else:
  37. Folder.objects.create(folder_id=request.Folder.folder_id,
  38. folder_name=request.Folder.folder_name,
  39. father_folder=folder)
  40. return HttpResponse(status=200)
  41. elif request.method == 'GET':
  42. if DEBUG:
  43. return render(request, 'add_folder.html')
  44. else:
  45. return HttpResponse(status=400)
  46. # 删除文件夹
  47. @login_required(login_url='/account/login/')
  48. def delete_folder(request):
  49. if request.method == 'post':
  50. folder = Folder.objects.filter(folder_id=request.Folder.folder_id).get()
  51. if not folder:
  52. # 查无此文件夹
  53. return HttpResponse(status=421)
  54. else:
  55. folder.delete()
  56. return HttpResponse(status=200)
  57. elif request.method == 'GET':
  58. if DEBUG:
  59. return render(request, 'delete_folder.html')
  60. else:
  61. return HttpResponse(status=400)