答题bug修改
This commit is contained in:
parent
769ea453c4
commit
f3b52511b5
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.0.5 on 2022-11-14 03:08
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('exam', '0003_auto_20221108_0901'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='examrecord',
|
||||||
|
name='end_time',
|
||||||
|
field=models.DateTimeField(blank=True, null=True, verbose_name='结束答题时间'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -108,7 +108,7 @@ class ExamRecord(CommonAModel):
|
||||||
score = models.FloatField(default=0, verbose_name='得分')
|
score = models.FloatField(default=0, verbose_name='得分')
|
||||||
took = models.IntegerField(default=0, verbose_name='耗时(秒)')
|
took = models.IntegerField(default=0, verbose_name='耗时(秒)')
|
||||||
start_time = models.DateTimeField(verbose_name='开始答题时间')
|
start_time = models.DateTimeField(verbose_name='开始答题时间')
|
||||||
end_time = models.DateTimeField(verbose_name='结束答题时间')
|
end_time = models.DateTimeField(verbose_name='结束答题时间', null=True, blank=True)
|
||||||
detail = models.ManyToManyField(Question, verbose_name='答题记录', through='AnswerDetail')
|
detail = models.ManyToManyField(Question, verbose_name='答题记录', through='AnswerDetail')
|
||||||
is_pass = models.BooleanField(default=True, verbose_name='是否通过')
|
is_pass = models.BooleanField(default=True, verbose_name='是否通过')
|
||||||
exam = models.ForeignKey(Exam, verbose_name='关联的正式考试', null=True, blank=True, on_delete= models.SET_NULL)
|
exam = models.ForeignKey(Exam, verbose_name='关联的正式考试', null=True, blank=True, on_delete= models.SET_NULL)
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ class AnswerDetailSerializer(ModelSerializer):
|
||||||
level = serializers.ReadOnlyField(source='question.level')
|
level = serializers.ReadOnlyField(source='question.level')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PaperQuestion
|
model = AnswerDetail
|
||||||
fields = ['id', 'question', 'name', 'options', 'right', 'type', 'level',
|
fields = ['id', 'question', 'name', 'options', 'right', 'type', 'level',
|
||||||
'total_score', 'questioncat_name', 'img', 'user_answer', 'score', 'is_right']
|
'total_score', 'questioncat_name', 'img', 'user_answer', 'score', 'is_right']
|
||||||
|
|
||||||
|
|
@ -179,6 +179,6 @@ class AnswerDetailOutSerializer(ModelSerializer):
|
||||||
level = serializers.ReadOnlyField(source='question.level')
|
level = serializers.ReadOnlyField(source='question.level')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PaperQuestion
|
model = AnswerDetail
|
||||||
fields = ['id', 'question', 'name', 'options', 'type', 'level',
|
fields = ['id', 'question', 'name', 'options', 'type', 'level',
|
||||||
'total_score', 'questioncat_name', 'img', 'user_answer', 'score', 'is_right']
|
'total_score', 'questioncat_name', 'img', 'user_answer', 'score', 'is_right']
|
||||||
|
|
|
||||||
|
|
@ -287,6 +287,7 @@ class ExamViewSet(CreateUpdateCustomMixin, ModelViewSet):
|
||||||
return Response(status=204)
|
return Response(status=204)
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map=[{'post': '*'}], serializer_class=Serializer, permission_classes = [IsAuthenticated])
|
@action(methods=['post'], detail=True, perms_map=[{'post': '*'}], serializer_class=Serializer, permission_classes = [IsAuthenticated])
|
||||||
|
@transaction.atomic
|
||||||
def start(self, request, *args, **kwargs):
|
def start(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
开始考试
|
开始考试
|
||||||
|
|
@ -371,6 +372,7 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet):
|
||||||
return self.get_paginated_response(serializer.data)
|
return self.get_paginated_response(serializer.data)
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map=[{'post': '*'}], serializer_class=ExamRecordSubmitSerializer, permission_classes = [IsAuthenticated])
|
@action(methods=['post'], detail=True, perms_map=[{'post': '*'}], serializer_class=ExamRecordSubmitSerializer, permission_classes = [IsAuthenticated])
|
||||||
|
@transaction.atomic
|
||||||
def submit(self, request, pk=None):
|
def submit(self, request, pk=None):
|
||||||
'''
|
'''
|
||||||
提交答卷
|
提交答卷
|
||||||
|
|
@ -415,4 +417,4 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet):
|
||||||
er.end_time = now
|
er.end_time = now
|
||||||
er.is_submited = True
|
er.is_submited = True
|
||||||
er.save()
|
er.save()
|
||||||
return Response()
|
return Response(ExamRecordListSerializer(instance=er).data)
|
||||||
Loading…
Reference in New Issue