factory/apps/bi/serializers.py

34 lines
1.0 KiB
Python

from apps.utils.serializers import CustomModelSerializer
from apps.bi.models import Dataset
from apps.utils.constants import EXCLUDE_FIELDS
from rest_framework import serializers
from apps.bi.services import check_sql_safe
class DatasetCreateUpdateSerializer(CustomModelSerializer):
class Meta:
model = Dataset
exclude = EXCLUDE_FIELDS
def validate(self, attrs):
sql_query = attrs['sql_query']
if sql_query:
check_sql_safe(sql_query)
return attrs
class DatasetSerializer(CustomModelSerializer):
class Meta:
model = Dataset
fields = '__all__'
# class ReportSerializer(CustomModelSerializer):
# class Meta:
# model = Report
# fields = '__all__'
# read_only_fields = EXCLUDE_FIELDS
class DataExecSerializer(serializers.Serializer):
query = serializers.JSONField(label="查询字典参数", required=False, allow_null=True)
return_type = serializers.IntegerField(label="返回格式", required=False, default=2)