38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
from apps.utils.serializers import CustomModelSerializer
|
|
from apps.bi.models import Dataset, Report
|
|
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 ReportCreateUpdateSerializer(CustomModelSerializer):
|
|
class Meta:
|
|
model = Report
|
|
exclude = EXCLUDE_FIELDS
|
|
|
|
|
|
class ReportSerializer(CustomModelSerializer):
|
|
class Meta:
|
|
model = Report
|
|
fields = '__all__'
|
|
|
|
|
|
class ReportExecSerializer(serializers.Serializer):
|
|
query = serializers.JSONField(label="查询字典参数", required=False, allow_null=True) |