views.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. # coding=utf-8
  2. from rest_framework.viewsets import ReadOnlyModelViewSet
  3. from rest_framework.views import APIView
  4. from utils import response_ok, response_error
  5. from apps.system.models import SysLog
  6. from utils.permission import IsAdministrator, IsStaff
  7. from apps.practise.errorbook.models import ErrorBook
  8. from apps.practise.errorbook.filters import *
  9. from apps.practise.errorbook.serializers import *
  10. from apps.foundation.models import Subject, Chapter
  11. from apps.foundation.serializers import SubjectSimpleSerializer, ChapterSimpleSerializer
  12. class ErrorBookViewSet(ReadOnlyModelViewSet):
  13. permission_classes = [IsStaff, ]
  14. queryset = ErrorBook.objects.filter()
  15. serializer_class = ErrorBookSerializer
  16. def filter_queryset(self, queryset):
  17. # 排序使用filter排序功能 OrderingFilter 参数 sort=last_time 按最后出错时间排序 sort=-last_time按最后出错时间倒序排序
  18. queryset = queryset.filter(create_user=self.request.user)
  19. f = ErrorBookFilter(self.request.GET, queryset=queryset)
  20. return f.qs
  21. class DictView(APIView):
  22. permission_classes = [IsStaff, ]
  23. def get(self, request):
  24. ret = {
  25. 'subject': SubjectSimpleSerializer(Subject.objects.filter(delete=False), many=True).data
  26. }
  27. return response_ok(ret)