This commit is contained in:
2025-06-15 23:07:48 +08:00
parent 30becb56bc
commit 313e326316

View File

@@ -17,7 +17,6 @@ from .schemas import (
from .models import Rating, Submission from .models import Rating, Submission
from task.models import Task from task.models import Task
from account.models import User
router = Router() router = Router()
@@ -56,17 +55,19 @@ def list_submissions(request, filters: SubmissionFilter = Query(...)):
if filters.username: if filters.username:
submissions = submissions.filter(user__username__icontains=filters.username) submissions = submissions.filter(user__username__icontains=filters.username)
submissions = submissions.prefetch_related("ratings").filter( # 获取所有提交
ratings__user=request.user submissions = submissions.prefetch_related("ratings")
)
rating_dict = { # 获取当前用户的评分
submission.id: submission.ratings.first().score user_ratings = {
for submission in submissions rating.submission_id: rating.score
if submission.ratings.exists() for rating in Rating.objects.filter(
user=request.user,
submission__in=submissions
)
} }
return [SubmissionOut.list(submission, rating_dict) for submission in submissions] return [SubmissionOut.list(submission, user_ratings) for submission in submissions]
@router.get("/{submission_id}", response=SubmissionOut) @router.get("/{submission_id}", response=SubmissionOut)