def get_problemExample(obj): data = {} problemExampleList = obj.problemexample_set.all() data = get_data(obj=problemExampleList, serializer=ProblemExampleSerializer, many=True) return data
def get_match(obj): dataList = [] match = obj.match data = get_data(obj=match, serializer=MatchSerializer, dataList=dataList) return data
def get_problem(obj): problem = obj.problem dataList = ["no", "title"] data = get_data(obj=problem, serializer=ProblemSerializer, dataList=dataList) return data
def jwt_response_payload_handler(user=None, request=None): """ Returns the response data for both the login and refresh views. Override to return a custom response such as including the serialized representation of the User. Example: def jwt_response_payload_handler(token, user=None, request=None): return { 'token': token, 'user': UserSerializer(user, context={'request': request}).data } """ jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER # 获取token载荷 jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER # HS256 加密 payload = jwt_payload_handler(user) # 获取ip地址 防止同token异地登录 if 'HTTP_X_FORWARDED_FOR' in request.META: ip = request.META['HTTP_X_FORWARDED_FOR'] else: ip = request.META['REMOTE_ADDR'] payload['ip'] = ip token = jwt_encode_handler(payload) return { 'token': token, 'user': get_data(obj=user, serializer=UserSerializer, context={'request': request}) }
def get(self, request): data = {'status': 200, 'msg': '获取成功', 'data': {}} #返回集 #权限验证 待添加 submit_Username = request.GET.get("submit_Username", "") submit_User_Id = request.GET.get("submit_User_Id", "") query_Criteria = {} #查询集 #用户列表筛选条件 两个都没有则为查询所有用户列表 if submit_Username != '': query_Criteria['username__iregex'] = submit_Username if submit_User_Id != '': query_Criteria['id'] = submit_User_Id user_List = User.objects.filter(**query_Criteria) #分页处理 dataList = ["id", "username", "nickname", "myClass"] page_Num = request.GET.get("page", 1) paginator_OfUserAll = Paginator(user_List, 30) user_List = paginator_OfUserAll.page(page_Num).object_list user_List = get_data(obj=user_List, serializer=UserSerializer, dataList=dataList, many=True) data["data"].update({"user_List": user_List}) return JsonResponse(data)
def get_problem(obj): from Issue.serializers import ProblemSerializer dataList = ["no", "title"] problem = obj.problem data = get_data(obj=problem, serializer=ProblemSerializer, dataList=dataList) return data
def get(self, request): print("xxxxxx") is_login, user = check_auth(request._request) # 获取登录的用户 data = {'status': 200, 'msg': '成功获取用户信息', 'data': {}} if is_login: data['data'] = get_data(obj=user, serializers=UserSerializer) else: data['msg'] = '未登录' data['status'] = 400 return JsonResponse(data=data)
def get(request): is_login, user = check_auth(request) # 获取登录的用户 return JsonResponse({ 'is_login': is_login, 'user': get_data(obj=user, serializer=UserSerializer, context={'request': request}), 'status': 200 })
def get(request): # 按(提交人|提交结果|提交语言|提交问题)查询第page页的提交列表 submit_username = request.GET.get('submit_UserName', '') judge_states = request.GET.get('judege_States', '') language = request.GET.get('language', '') problem_id = request.GET.get('problem_Id', '') page_num = request.GET.get('page', 1) query_Criteria = {} # 创建一个多条件查询字典 if submit_username != '': query_Criteria[ 'user__username__iregex'] = submit_username # 用户名不区分大小写 if judge_states != '' and judge_states != '0': query_Criteria['result'] = judge_states if language != '' and language != 'All': # 当值为C++时不知道为什么传不过来,推测可能是无法解析 if language == 'Csrc': query_Criteria['language'] = 'C++' else: query_Criteria['language'] = language if problem_id != '': try: query_Criteria['problem__no'] = int(problem_id) except ValueError: pass submit_list = ProblemSubmit.objects.filter( **query_Criteria).order_by('-runID') # change_status(submit_list) # 分页 dataList = [ "runID", "result", "time", "memory", "language", "subTime", "user", "problem" ] paginator_of_submit_list_all = Paginator(submit_list, 25) # 分页 paginator_of_submit_list_all = paginator_of_submit_list_all.page( page_num) paginator_of_submit_list_all = paginator_of_submit_list_all.object_list paginator_of_submit_list_all = get_data( obj=paginator_of_submit_list_all, serializer=ProblemSubmitSerializer, dataList=dataList, many=True) data = { 'status': 200, 'msg': '获取成功', 'statusList': paginator_of_submit_list_all, 'now_page': page_num, 'submit_user_name': submit_username, 'judge_states': judge_states, 'language': language, 'problem_id': problem_id } return JsonResponse(data)
def get(self, request, username): data = {'status': 200, 'msg': '成功获取用户信息', 'data': {}} try: user = User.objects.get(username=username) # 获取不到会抛异常 dataList = [ "nickname", "GENDER_CHOICE", "school", "major", "headImage", "synopsis", "rating", "ac_nums" ] data['data'] = get_data(obj=user, serializer=UserSerializer, dataList=dataList) except: data['msg'] = '用户不存在' data['status'] = 400 return JsonResponse(data=data)
def get(request): # 按(id|名字|类型|来源)查询第page页的问题列表 problem_Id_Name = request.GET.get('problem_Id_Name', '') problem_Source = request.GET.get('problem_Source', 'All') algorithm_Type = request.GET.get('algorithm_Type', 'All') query_Criteria = {'probAuthority': '公开'} # 创建一个多条件查询字典 if problem_Id_Name != '': try: # 尝试将参数作为数值处理,并当作id搜索,如果不行,就转化为name进行搜索 query_Criteria['no'] = int(problem_Id_Name) except ValueError: query_Criteria['title__iregex'] = '.*'.join(problem_Id_Name) if problem_Source != '' and problem_Source != 'All': query_Criteria['probSource'] = problem_Source if algorithm_Type != '' and algorithm_Type != 'All': query_Criteria['classification'] = algorithm_Type problems = Problem.objects.filter(**query_Criteria).order_by('-no') # 分页处理 dataList = ["no", "title", 'ac_nums', 'submit_nums'] paginator_of_problems_all = Paginator(problems, 20) page_num = request.GET.get('page', 1) paginator_of_problems_all = paginator_of_problems_all.page(page_num) paginator_of_problems_all = paginator_of_problems_all.object_list paginator_of_problems_all = get_data(obj=paginator_of_problems_all, serializer=ProblemSerializer, dataList=dataList, many=True) is_login, user = check_auth(request) exec_problems = is_accepted(user, paginator_of_problems_all) # 将这些数据返回到前端,这样便于进行多条件过滤 data = {'status': 200, 'msg': '已获取所有问题'} data.update({ 'problems': exec_problems, 'now_page': page_num, 'problem_id_name': problem_Id_Name, 'problem_source': problem_Source, 'algorithm_type': algorithm_Type }) return JsonResponse(data)
def get(request): data = {'status': 200, 'msg': '获取成功', 'data': {}} is_login, user = check_auth(request) if not is_login: data["data"].update({ 'status': 400, 'msg': '未登录', }) return JsonResponse(data) username = request.GET.get("username", "") if username != user.username: data["data"].update({ 'status': 400, 'msg': '不同用户', }) return JsonResponse(data) problem_Submit_Id = request.GET.get("problem_Submit_Id", "") print(problem_Submit_Id) problem_Submit = ProblemSubmit.objects.get(runID=problem_Submit_Id) problem_Submit = get_data(obj=problem_Submit, serializer=ProblemSubmitSerializer) data["data"] = {"problem_Submit": problem_Submit} return JsonResponse(data)
def get_user(obj): from UserProfile.serializers import UserSerializer dataList = [] user = obj.user data = get_data(obj=user, serializer=UserSerializer, dataList=dataList) return data
def get_user(obj): from UserProfile.serializers import UserSerializer dataList = ["id", "username", "nickname", "school"] user = obj.user data = get_data(obj=user, serializer=UserSerializer, dataList=dataList) return data