import json from django.shortcuts import render from admin_site.utils import char_2_datetime,setSuccess from django.utils import timezone from django.views.decorators.http import require_http_methods from django.views.decorators.csrf import csrf_exempt from .models import Service as Service_models from user.models import User as User_models import re from files.tasks import del_one_file from django.http import HttpResponse, JsonResponse from django.core.paginator import Paginator from .tasks import create_service from files.models import Files as Files_models # Create your views here. """ 创建新的运算模型 """ @csrf_exempt @require_http_methods(["POST"]) def add(request): body = json.loads(request.body) print('fileListID ', type(body['fileListID'])) params = { 'name': body.get('name', None), 'source': body.get('source', None), 'desc': body.get('desc', None), 'user_id': body.get('user_id', None), } # 创建订单 service_add = Service_models(**params) service_add.save() # 定义文件删除程序 for files_id in body['fileListID']: file_params = { 'service_id': service_add.id, } print('file_params', file_params) Files_models.objects.filter(id=files_id).update(**file_params) # 执行异步任务 create_service.delay(service_add.id) return JsonResponse(setSuccess(msg='更新成功', data=True)) @csrf_exempt @require_http_methods(["POST"]) def list(request): body = json.loads(request.body) print(body['token']) page = body.get('page', 0) page_size = body.get('pageSize', 10) keyword = body.get('keyword', '') data_list = Service_models.objects.all() is_root = False params = { 'is_delete': 0 } if keyword: params.setdefault('title__icontains', keyword) if body['token'] is not None: user_info = User_models.objects.get(token=body['token']) print(user_info.id) is_root = user_info.type == 'root' if not is_root: params.setdefault('user_id', user_info.id) if keyword: data_list = data_list.filter(**params) paginator = Paginator(data_list, page_size) total_count = paginator.count # 获取数据总数 data = paginator.get_page(page) data_json = { 'has_previous': data.has_previous(), 'has_next': data.has_next(), 'number': data.number, 'total_count': total_count, 'num_pages': paginator.num_pages, 'list': [{'id': item.id, 'create_time': item.create_time, 'update_time': item.update_time, 'start_time': item.start_time, 'desc': item.desc, 'name': item.name, 'source': item.source, 'run_time': item.run_time, 'status': item.status, } for item in data] } return JsonResponse(setSuccess(msg='更新成功', data=data_json)) @csrf_exempt @require_http_methods(["POST", "GET"]) def info(request): return JsonResponse(setSuccess(msg='更新成功', data={}))