| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import random
- import string
- from django.http import HttpResponse
- from django.shortcuts import render
- from django.contrib.auth.decorators import login_required
- from .models import Folder
- from file.models import File
- from django.contrib.auth.models import User
- import json
- # Create your views here.
- DEBUG = 1
- @login_required(login_url='/account/login/')
- def get_first_folder(request):
- if request.method == 'POST':
- # 获取所有根文件夹id
- folders = Folder.objects.filter(father_folder=None)
- response = []
- for i in folders:
- response.append([i.folder_name, i.folder_id])
- return HttpResponse(json.dumps(response), status=200)
- elif request.method == 'GET':
- if DEBUG:
- return render(request, 'folder_list.html')
- else:
- return HttpResponse(status=400)
- # 在根目录下列出所有文件夹与文件
- @login_required(login_url='/account/login/')
- def folder_list(request):
- if request.method == 'POST':
- data = request.POST
- # 获取所有文件夹
- folders = Folder.objects.filter(father_folder__folder_id=data['folder_id'])
- files = File.objects.filter(folder__folder_id=data['folder_id'])
- response = []
- for i in folders:
- response.append(['folders', i.folder_name, i.folder_id])
- for i in files:
- response.append(['files', i.file_name, i.file_id, i.file_path, i.file_id, i.update_time, i.file_type, i.file_size])
- return HttpResponse(json.dumps(response), status=200)
- elif request.method == 'GET':
- if DEBUG:
- return render(request, 'folder_list.html')
- else:
- return HttpResponse(status=400)
- # 父文件夹id 子文件夹名字
- # 增文件夹
- @login_required(login_url='/account/login/')
- def add_folder(request):
- if request.method == 'POST':
- data = request.POST
- folder_id_random = ''.join(random.sample(string.digits, 8))
- father_folder = Folder.objects.filter(folder_id=data['father_folder_id']).get()
- print(data)
- if not father_folder:
- # 查无此文件夹
- return HttpResponse(status=421)
- else:
- if 'folder_name' in data:
- print('yes')
- Folder.objects.create(folder_id=folder_id_random,
- folder_name=data.get("folder_name"),
- father_folder=father_folder)
- return HttpResponse(status=200)
- elif request.method == 'GET':
- if DEBUG:
- return render(request, 'add_folder.html')
- else:
- return HttpResponse(status=400)
- # 删除文件夹
- @login_required(login_url='/account/login/')
- def delete_folder(request):
- if request.method == 'POST':
- data = request.POST
- folder = Folder.objects.filter(folder_id=data['folder_id']).get()
- if not folder:
- # 查无此文件夹
- return HttpResponse(status=421)
- else:
- folder.delete()
- return HttpResponse(status=200)
- elif request.method == 'GET':
- if DEBUG:
- return render(request, 'delete_folder.html')
- else:
- return HttpResponse(status=400)
|