必须是提交成功之后对题目评论
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Generated by Django 5.0.6 on 2024-06-30 16:20
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('comment', '0002_alter_comment_options'),
|
||||
('submission', '0013_alter_submission_info_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='comment',
|
||||
name='problem_solved',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='comment',
|
||||
name='language',
|
||||
field=models.CharField(choices=[('Python', 'Python'), ('C', 'C'), ('C++', 'C++'), ('Java', 'Java')], default='Python', max_length=10, verbose_name='解决这道题使用的语言'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='comment',
|
||||
name='submission',
|
||||
field=models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, to='submission.submission'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -15,13 +15,11 @@ class Languages(models.TextChoices):
|
||||
class Comment(models.Model):
|
||||
problem = models.ForeignKey(Problem, on_delete=models.CASCADE)
|
||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
submission = models.ForeignKey(Submission, null=True, blank=True, on_delete=models.SET_NULL)
|
||||
problem_solved = models.BooleanField()
|
||||
submission = models.ForeignKey(Submission, on_delete=models.CASCADE)
|
||||
language = models.CharField(
|
||||
max_length=10,
|
||||
default=Languages.Python,
|
||||
choices=Languages.choices,
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="解决这道题使用的语言",
|
||||
)
|
||||
description_rating = models.PositiveSmallIntegerField(
|
||||
|
||||
@@ -19,31 +19,27 @@ class CommentAPI(APIView):
|
||||
except Problem.DoesNotExist:
|
||||
self.error("problem is not exists")
|
||||
|
||||
language = None
|
||||
submission = None
|
||||
problem_solved = False
|
||||
|
||||
submission = (
|
||||
Submission.objects.select_related("problem")
|
||||
.filter(
|
||||
user_id=request.user.id,
|
||||
problem_id=data["problem_id"],
|
||||
result=JudgeStatus.ACCEPTED,
|
||||
try:
|
||||
submission = (
|
||||
Submission.objects.select_related("problem")
|
||||
.filter(
|
||||
user_id=request.user.id,
|
||||
problem_id=data["problem_id"],
|
||||
result=JudgeStatus.ACCEPTED,
|
||||
)
|
||||
.first()
|
||||
)
|
||||
.first()
|
||||
)
|
||||
except Submission.DoesNotExist:
|
||||
self.error("submission is not exists or not accepted")
|
||||
|
||||
if submission:
|
||||
problem_solved = True
|
||||
language = submission.language
|
||||
if language == "Python3":
|
||||
language = "Python"
|
||||
language = submission.language
|
||||
if language == "Python3":
|
||||
language = "Python"
|
||||
|
||||
Comment.objects.create(
|
||||
user=request.user,
|
||||
problem=problem,
|
||||
submission=submission,
|
||||
problem_solved=problem_solved,
|
||||
language=language,
|
||||
description_rating=data["description_rating"],
|
||||
difficulty_rating=data["difficulty_rating"],
|
||||
@@ -66,8 +62,10 @@ class CommentAPI(APIView):
|
||||
comprehensive=Round(Avg("comprehensive_rating"), 2),
|
||||
)
|
||||
contents = comments.exclude(content="").values_list("content", flat=True)
|
||||
return self.success({
|
||||
"count": count,
|
||||
"rating": rating,
|
||||
"contents": list(contents),
|
||||
})
|
||||
return self.success(
|
||||
{
|
||||
"count": count,
|
||||
"rating": rating,
|
||||
"contents": list(contents),
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user