views.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:eoj3 作者: ultmaster 项目源码 文件源码
def get(self, request, *args, **kwargs):
        if 'data' in request.GET:
            problems = self.contest.contestproblem_set.select_related('problem').all()
            data = []
            SUB_FIELDS = ["title", "id", "alias"]
            STATISTIC_FIELDS = [
                ('ac1', get_problem_accept_count),
                ('ac2', get_problem_accept_user_count),
                ('tot1', get_problem_all_count),
                ('tot2', get_problem_all_user_count),
                ('ratio1', get_problem_accept_ratio),
                ('ratio2', get_problem_accept_user_ratio),
            ]
            for problem in problems:
                d = {k: getattr(problem.problem, k) for k in SUB_FIELDS}
                d.update(pid=problem.id, identifier=problem.identifier, weight=problem.weight)
                d.update({k: v(problem.problem_id, self.contest.id) for k, v in STATISTIC_FIELDS})
                data.append(d)
            data.sort(key=lambda x: x['identifier'])
            return HttpResponse(json.dumps(data))
        return super(ContestProblemManage, self).get(request, *args, **kwargs)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号