feat: bi dataset 表增加字段

This commit is contained in:
caoqianming 2024-03-19 11:30:20 +08:00
parent eaf1a5671f
commit d05ee1595c
4 changed files with 33 additions and 2 deletions

10
apps/bi/correct.py Normal file
View File

@ -0,0 +1,10 @@
from apps.bi.models import Dataset
def correct_bi_test_param():
dss = Dataset.objects.all()
for ds in dss:
if not ds.test_param and ds.default_param:
ds.test_param = ds.default_param
ds.default_param = {}
ds.save()

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2024-03-19 03:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('bi', '0003_dataset_default_param'),
]
operations = [
migrations.AddField(
model_name='dataset',
name='test_param',
field=models.JSONField(blank=True, default=dict, verbose_name='测试查询参数'),
),
]

View File

@ -9,6 +9,7 @@ class Dataset(CommonBDModel):
description = models.TextField('描述说明', default='', blank=True) description = models.TextField('描述说明', default='', blank=True)
sql_query = models.TextField('sql查询语句', default='', blank=True) sql_query = models.TextField('sql查询语句', default='', blank=True)
echart_options = models.TextField(default='', blank=True) echart_options = models.TextField(default='', blank=True)
test_param = models.JSONField('测试查询参数', default=dict, blank=True)
default_param = models.JSONField('默认查询参数', default=dict, blank=True) default_param = models.JSONField('默认查询参数', default=dict, blank=True)
cache_seconds = models.PositiveIntegerField('缓存秒数', default=10, blank=True) cache_seconds = models.PositiveIntegerField('缓存秒数', default=10, blank=True)

View File

@ -73,10 +73,12 @@ class DatasetViewSet(CustomModelViewSet):
if dt.sql_query: if dt.sql_query:
try: try:
if dt.default_param:
query.update(dt.default_param)
sql_f_ = check_sql_safe(dt.sql_query.format(**query)) sql_f_ = check_sql_safe(dt.sql_query.format(**query))
except KeyError as e: except KeyError as e:
if is_test and dt.default_param: if is_test and dt.test_param:
new_query = dt.default_param new_query = dt.test_param
new_query.update(query) new_query.update(query)
try: try:
sql_f_ = check_sql_safe( sql_f_ = check_sql_safe(