vue可视化报表平台后台代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

69 lines
3.0 KiB

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
def default_datetime():
now = timezone.now()
return now
class SourceDataBase(models.Model):
host = models.CharField(max_length=32)
port = models.IntegerField()
username = models.CharField(max_length=32)
password = models.CharField(max_length=256)
database = models.CharField(max_length=32)
base_alias = models.CharField(max_length=32)
creator = models.ForeignKey(User, on_delete=models.CASCADE)
source_id = models.CharField(max_length=64, primary_key=True)
is_private = models.BooleanField(default=True)
status = models.IntegerField(default=1)
created_at = models.DateTimeField(db_index=True, default=default_datetime)
updated_at = models.DateTimeField(db_index=True, null=False)
class SourceDataTable(models.Model):
database = models.ForeignKey(SourceDataBase, on_delete=models.CASCADE)
table = models.CharField(max_length=256)
table_alias = models.CharField(max_length=256)
status = models.IntegerField(default=1)
creator = models.ForeignKey(User, on_delete=models.CASCADE)
id = models.CharField(max_length=64, primary_key=True)
created_at = models.DateTimeField(db_index=True, default=default_datetime)
updated_at = models.DateTimeField(db_index=True, null=False)
# Create your models here.
class Chart(models.Model):
chart_id = models.CharField(max_length=64, primary_key=True)
chart_name = models.CharField(max_length=128)
source_id = models.ForeignKey(SourceDataBase, on_delete=models.CASCADE)
desc = models.CharField(max_length=512, null=True)
content = models.TextField()
is_private = models.BooleanField()
status = models.IntegerField()
creator = models.ForeignKey(User, on_delete=models.CASCADE)
created_at = models.DateTimeField(db_index=True, default=default_datetime)
updated_at = models.DateTimeField(db_index=True, null=False)
class Dashboard(models.Model):
dashboard_id = models.CharField(max_length=64, primary_key=True)
name = models.CharField(max_length=128)
desc = models.CharField(max_length=512, null=True)
content = models.TextField()
is_private = models.BooleanField()
status = models.IntegerField()
creator = models.ForeignKey(User, on_delete=models.CASCADE)
created_at = models.DateTimeField(db_index=True, default=default_datetime)
updated_at = models.DateTimeField(db_index=True, null=False)
class ChartBoardMap(models.Model):
chart = models.ForeignKey(Chart, on_delete=models.CASCADE)
dashboard = models.ForeignKey(Dashboard, on_delete=models.CASCADE)
id = models.CharField(max_length=64, primary_key=True)
created_at = models.DateTimeField(db_index=True, default=default_datetime)
updated_at = models.DateTimeField(db_index=True, null=False)
class BoardOrder(models.Model):
creator = models.ForeignKey(User, on_delete=models.CASCADE)
order = models.TextField()
id = models.CharField(max_length=64, primary_key=True)
created_at = models.DateTimeField(db_index=True, default=default_datetime)
updated_at = models.DateTimeField(db_index=True, null=False)