diff --git a/apps/bi/serializers.py b/apps/bi/serializers.py index 69f7a030..35d8fe1b 100644 --- a/apps/bi/serializers.py +++ b/apps/bi/serializers.py @@ -1,5 +1,5 @@ from apps.utils.serializers import CustomModelSerializer -from apps.bi.models import Dataset +from apps.bi.models import Dataset, DatasetRecord from apps.utils.constants import EXCLUDE_FIELDS from rest_framework import serializers from apps.bi.services import check_sql_safe @@ -22,6 +22,10 @@ class DatasetSerializer(CustomModelSerializer): model = Dataset fields = '__all__' +class DatasetRecordSerializer(CustomModelSerializer): + class Meta: + model = DatasetRecord + fields = '__all__' # class ReportSerializer(CustomModelSerializer): # class Meta: diff --git a/apps/bi/urls.py b/apps/bi/urls.py index b349d82c..6f1e030e 100644 --- a/apps/bi/urls.py +++ b/apps/bi/urls.py @@ -1,6 +1,6 @@ from django.urls import path, include from rest_framework.routers import DefaultRouter -from apps.bi.views import DatasetViewSet +from apps.bi.views import DatasetViewSet, DatasetRecordViewSet API_BASE_URL = 'api/bi/' HTML_BASE_URL = 'bi/' @@ -8,6 +8,7 @@ HTML_BASE_URL = 'bi/' router = DefaultRouter() router.register('dataset', DatasetViewSet, basename='dataset') # router.register('report', ReportViewSet, basename='report') +router.register('datasetrecord', DatasetRecordViewSet, basename='datasetrecord') urlpatterns = [ path(API_BASE_URL, include(router.urls)), ] \ No newline at end of file diff --git a/apps/bi/views.py b/apps/bi/views.py index a3ba6054..cdfb0dda 100644 --- a/apps/bi/views.py +++ b/apps/bi/views.py @@ -1,17 +1,17 @@ from django.shortcuts import render -from apps.utils.viewsets import CustomModelViewSet +from apps.utils.viewsets import CustomModelViewSet, GenericViewSet from rest_framework.decorators import action from rest_framework.response import Response -from apps.bi.models import Dataset -from apps.bi.serializers import DatasetSerializer, DatasetCreateUpdateSerializer, DataExecSerializer +from apps.bi.models import Dataset, DatasetRecord +from apps.bi.serializers import DatasetSerializer, DatasetCreateUpdateSerializer, DataExecSerializer, DatasetRecordSerializer from django.apps import apps -from rest_framework import serializers import concurrent.futures from django.core.cache import cache from apps.utils.sql import execute_raw_sql, format_sqldata from apps.bi.services import check_sql_safe, format_json_with_placeholders from rest_framework.exceptions import ParseError from rest_framework.generics import get_object_or_404 +from apps.utils.mixins import ListModelMixin # Create your views here. @@ -136,6 +136,15 @@ class DatasetViewSet(CustomModelViewSet): return Response(rdict) +class DatasetRecordViewSet(ListModelMixin, GenericViewSet): + perms_map = {"get": "*"} + queryset = DatasetRecord.objects.all() + serializer_class = DatasetRecordSerializer + filterset_fields = { + "timex": ["year", "month", "day"] + } + + # class ReportViewSet(CustomModelViewSet): # 暂时不用了 # queryset = Report.objects.all() # serializer_class = ReportSerializer