diff --git a/apps/edu/views.py b/apps/edu/views.py index f16c59b8..1f4b980a 100644 --- a/apps/edu/views.py +++ b/apps/edu/views.py @@ -16,6 +16,7 @@ from drf_yasg.utils import swagger_auto_schema from apps.utils.permission import has_perm from .filters import ExamFilter, ExamRecordFilter from apps.system.models import User +from datetime import datetime # Create your views here. class QuestioncatViewSet(CustomModelViewSet): @@ -26,6 +27,7 @@ class QuestioncatViewSet(CustomModelViewSet): class QuestionViewSet(CustomModelViewSet): queryset = Question.objects.all() serializer_class = QuestionSerializer + select_related_fields = ["questioncat"] filterset_fields = ["questioncat", "type", "enabled"] def update(self, request, *args, **kwargs): @@ -54,6 +56,17 @@ class ExamViewSet(CustomModelViewSet): filterset_class = ExamFilter retrieve_serializer_class = ExamDetailSerializer + def add_info_for_list(self, data): + """ + 添加是否可参加字段 + """ + now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + for item in data: + item["can_attend"] = False + if item["open_time"] <= now <= item["close_time"]: + item["can_attend"] = True + return data + def get_queryset(self): qs = super().get_queryset() if has_perm(self.request.user, 'exam.view'):