This commit is contained in:
2025-10-23 12:42:24 +08:00
parent 69b22660ca
commit 03f1bfdf86
6 changed files with 72 additions and 31 deletions

View File

@@ -137,6 +137,7 @@ class ProblemSetProblemSerializer(serializers.ModelSerializer):
"""题单题目序列化器"""
problem = serializers.SerializerMethodField()
is_completed = serializers.SerializerMethodField()
class Meta:
model = ProblemSetProblem
@@ -148,6 +149,20 @@ class ProblemSetProblemSerializer(serializers.ModelSerializer):
return ProblemListSerializer(obj.problem, context=self.context).data
def get_is_completed(self, obj):
"""获取当前用户是否已完成该题目"""
request = self.context.get("request")
if request and request.user.is_authenticated:
try:
progress = ProblemSetProgress.objects.get(
problemset=obj.problemset, user=request.user
)
problem_id = str(obj.problem.id)
return problem_id in progress.progress_detail
except ProblemSetProgress.DoesNotExist:
return False
return False
class AddProblemToSetSerializer(serializers.Serializer):
"""添加题目到题单序列化器"""
@@ -226,5 +241,6 @@ class UpdateProgressSerializer(serializers.Serializer):
problemset_id = serializers.IntegerField()
problem_id = serializers.IntegerField()
submission_id = serializers.CharField(required=False)