From fb2015fc8cbb4e231f015cf9861caa1fc91e8ecc Mon Sep 17 00:00:00 2001 From: shaohuihuang Date: Tue, 11 Dec 2018 21:52:22 +0800 Subject: [PATCH] force to delete a problem even when it has submissions. --- problem/views/admin.py | 8 ++++---- submission/models.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/problem/views/admin.py b/problem/views/admin.py index a357cea5..049bef40 100644 --- a/problem/views/admin.py +++ b/problem/views/admin.py @@ -300,8 +300,8 @@ class ProblemAPI(ProblemBase): except Problem.DoesNotExist: return self.error("Problem does not exists") ensure_created_by(problem, request.user) - if Submission.objects.filter(problem=problem).exists(): - return self.error("Can't delete the problem as it has submissions") + #if Submission.objects.filter(problem=problem).exists(): + # return self.error("Can't delete the problem as it has submissions") d = os.path.join(settings.TEST_CASE_DIR, problem.test_case_id) if os.path.isdir(d): shutil.rmtree(d, ignore_errors=True) @@ -430,8 +430,8 @@ class ContestProblemAPI(ProblemBase): except Problem.DoesNotExist: return self.error("Problem does not exists") ensure_created_by(problem.contest, request.user) - if Submission.objects.filter(problem=problem).exists(): - return self.error("Can't delete the problem as it has submissions") + #if Submission.objects.filter(problem=problem).exists(): + # return self.error("Can't delete the problem as it has submissions") d = os.path.join(settings.TEST_CASE_DIR, problem.test_case_id) if os.path.isdir(d): shutil.rmtree(d, ignore_errors=True) diff --git a/submission/models.py b/submission/models.py index 261052e9..a59066d2 100644 --- a/submission/models.py +++ b/submission/models.py @@ -23,7 +23,7 @@ class JudgeStatus: class Submission(models.Model): id = models.TextField(default=rand_str, primary_key=True, db_index=True) contest = models.ForeignKey(Contest, null=True) - problem = models.ForeignKey(Problem) + problem = models.ForeignKey(Problem, on_delete=models.CASCADE) create_time = models.DateTimeField(auto_now_add=True) user_id = models.IntegerField(db_index=True) username = models.TextField()