Django 审批系统表结构设计
class FlowEngine(models.Model): """审批流引擎""" name = models.CharField(max_length=128, verbose_name="审批流名称") def __str__(self): return self.name class Meta: verbose_name = "工作流引擎" verbose_name_plural = verbose_name class FlowNode(models.Model): """审批流引擎节点""" name = models.CharField(max_length=128) flow = models.ForeignKey("FlowEngine") node_order = models.SmallIntegerField() approval_role = models.ForeignKey("Role") def __str__(self): return self.name class Meta: verbose_name = "工作流节点" verbose_name_plural = verbose_name class VMTemplate(models.Model): name = models.CharField(max_length=128) os = models.CharField(max_length=128) class Service(models.Model): """服务目录""" name = models.CharField(max_length=128) template = models.ForeignKey("VMTemplate") flow = models.ForeignKey("FlowEngine") def __str__(self): return self.name class Meta: verbose_name = "服务目录" verbose_name_plural = verbose_name class ServiceRequest(models.Model): name = models.CharField(max_length=128) template = models.ForeignKey("VMTemplate") ip = models.GenericIPAddressField() cpu = models.SmallIntegerField() memory = models.IntegerField() disk = models.IntegerField() owner = models.ForeignKey("MyUser") type_choices = ( (0, "虚拟机申请"), (1, "虚拟机修改"), (2, "虚拟机删除"), ) type = models.SmallIntegerField(choices=type_choices, default=0, verbose_name="类型") request_status_choices = ( (0, "审批中"), (1, "已审批"), (2, "拒绝"), (3, "创建中"), (4, "已创建"), ) request_status = models.SmallIntegerField(choices=request_status_choices, default=0, verbose_name="状态") class RequestFlow(models.Model): request = models.ForeignKey("ServiceRequest") approval_user = models.ForeignKey("MyUser") approval_status_choices = ( (0, "等待"), (1, "审批中"), (2, "同意"), (3, "拒绝"), ) approval_status = models.SmallIntegerField(choices=approval_status_choices, default=0) order = models.SmallIntegerField()
class Role(models.Model):
name = models.CharField(max_length=128, verbose_name="角色名称")
permission_level = models.SmallIntegerField()
def __str__(self):
return self.name
class Meta:
verbose_name = "角色"
verbose_name_plural = verbose_name