diff --git a/submission/models.py b/submission/models.py index 74a7e872..bc445ecb 100644 --- a/submission/models.py +++ b/submission/models.py @@ -32,6 +32,7 @@ class Submission(models.Model): language = models.CharField(max_length=20) shared = models.BooleanField(default=False) # 存储该提交所用时间和内存值,方便提交列表显示 + # {time_cost: "", memory_cost: "", err_info: "", score: 0} statistic_info = JSONField(default={}) def check_user_permission(self, user): diff --git a/submission/views/oj.py b/submission/views/oj.py index 7619d7c5..028a733a 100644 --- a/submission/views/oj.py +++ b/submission/views/oj.py @@ -84,8 +84,9 @@ class SubmissionListAPI(APIView): if request.GET.get("myself") and request.GET["myself"] == "1": subs = subs.filter(user_id=request.user.id) - # todo: paginate - return self.success(SubmissionListSerializer(subs, many=True, user=request.user).data) + data = self.paginate_data(request, subs) + data["results"] = SubmissionListSerializer(data["results"], many=True, user=request.user).data + return self.success(data) def _get_submission(submission_id, user): diff --git a/utils/api/api.py b/utils/api/api.py index 197026a2..47a81cd4 100644 --- a/utils/api/api.py +++ b/utils/api/api.py @@ -112,7 +112,7 @@ class APIView(View): if object_serializer: return object_serializer(query_set, many=True).data else: - return query_set + return {"results": query_set, "total": query_set.count()} try: limit = int(request.GET.get("limit", "100")) except ValueError: