统一使用 error_page 的形式返回错误页面
This commit is contained in:
@@ -4,7 +4,7 @@ from rest_framework.views import APIView
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from utils.shortcuts import serializer_invalid_response, error_response, success_response
|
from utils.shortcuts import serializer_invalid_response, error_response, success_response
|
||||||
|
|
||||||
from utils.shortcuts import paginate
|
from utils.shortcuts import paginate, error_page
|
||||||
from .models import Announcement
|
from .models import Announcement
|
||||||
from .serializers import (CreateAnnouncementSerializer, AnnouncementSerializer,
|
from .serializers import (CreateAnnouncementSerializer, AnnouncementSerializer,
|
||||||
EditAnnouncementSerializer)
|
EditAnnouncementSerializer)
|
||||||
@@ -14,7 +14,7 @@ def announcement_page(request, announcement_id):
|
|||||||
try:
|
try:
|
||||||
announcement = Announcement.objects.get(id=announcement_id, visible=True)
|
announcement = Announcement.objects.get(id=announcement_id, visible=True)
|
||||||
except Announcement.DoesNotExist:
|
except Announcement.DoesNotExist:
|
||||||
return render(request, "utils/error.html", {"error": u"模板不存在"})
|
return error_page(request, u"模板不存在")
|
||||||
return render(request, "oj/announcement/announcement.html", {"announcement": announcement})
|
return render(request, "oj/announcement/announcement.html", {"announcement": announcement})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ from rest_framework.views import APIView
|
|||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from utils.shortcuts import serializer_invalid_response, error_response, success_response, paginate, rand_str
|
from utils.shortcuts import (serializer_invalid_response, error_response,
|
||||||
|
success_response, paginate, rand_str, error_page)
|
||||||
from .serizalizers import (CreateProblemSerializer, EditProblemSerializer, ProblemSerializer,
|
from .serizalizers import (CreateProblemSerializer, EditProblemSerializer, ProblemSerializer,
|
||||||
ProblemTagSerializer, CreateProblemTagSerializer)
|
ProblemTagSerializer, CreateProblemTagSerializer)
|
||||||
from .models import Problem, ProblemTag
|
from .models import Problem, ProblemTag
|
||||||
@@ -43,7 +44,7 @@ def problem_page(request, problem_id):
|
|||||||
try:
|
try:
|
||||||
problem = Problem.objects.get(id=problem_id)
|
problem = Problem.objects.get(id=problem_id)
|
||||||
except Problem.DoesNotExist:
|
except Problem.DoesNotExist:
|
||||||
return render(request, "utils/error.html", {"error": u"题目不存在"})
|
return error_page(request, u"题目不存在")
|
||||||
return render(request, "oj/problem/problem.html", {"problem": problem, "samples": json.loads(problem.samples)})
|
return render(request, "oj/problem/problem.html", {"problem": problem, "samples": json.loads(problem.samples)})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,17 +3,23 @@ import hashlib
|
|||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
from django.shortcuts import render
|
||||||
from django.core.paginator import Paginator
|
from django.core.paginator import Paginator
|
||||||
|
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
|
|
||||||
|
def error_page(request, error_reason):
|
||||||
|
return render(request, "utils/error.html", {"error": error_reason})
|
||||||
|
|
||||||
|
|
||||||
def error_response(error_reason):
|
def error_response(error_reason):
|
||||||
return Response(data={"code": 1, "data": error_reason})
|
return Response(data={"code": 1, "data": error_reason})
|
||||||
|
|
||||||
|
|
||||||
def serializer_invalid_response(serializer):
|
def serializer_invalid_response(serializer):
|
||||||
return error_response(serializer.errors)
|
for k, v in serializer.errors.iteritems():
|
||||||
|
return error_response(k + " : " + v[0])
|
||||||
|
|
||||||
|
|
||||||
def success_response(data):
|
def success_response(data):
|
||||||
|
|||||||
Reference in New Issue
Block a user