diff --git a/apps/bi/serializers.py b/apps/bi/serializers.py index 22a88f6c..1225e89b 100644 --- a/apps/bi/serializers.py +++ b/apps/bi/serializers.py @@ -11,7 +11,7 @@ class DatasetCreateUpdateSerializer(CustomModelSerializer): exclude = EXCLUDE_FIELDS def validate(self, attrs): - sql_query = attrs['sql_query'] + sql_query = attrs.get('sql_query', '') if sql_query: check_sql_safe(sql_query) return attrs diff --git a/apps/bi/views.py b/apps/bi/views.py index 8c561312..f9678556 100644 --- a/apps/bi/views.py +++ b/apps/bi/views.py @@ -70,6 +70,8 @@ class DatasetViewSet(CustomModelViewSet): if dt.sql_query: sql_f_ = check_sql_safe(dt.sql_query.format(**query)) + if '{' in sql_f_: + raise ParseError('未指定查询参数') sql_f_l = sql_f_.strip(';').split(';') hash_k = hash(sql_f_.strip(';')) hash_v = cache.get(hash_k, None)