我正在尝试为业务流程建模。我已经定义了一个类来保持进程蓝色打印(以及两个类来保持活动和流),然后我需要定义相同数量的表来保存与该类实例相关的所有数据。
我有一个名为ProcessBluePrint的类。这个类实际上由两个名为ActivityBluePrint和FlowBluePrint的类定义。到目前为止一切正常。
我需要定义类似的类来保存实例的数据,即进程,活动和流程。
我尝试定义Process类来保留ProcessBluePrint的所有实例,但我无法做到正确。在django admin中,当我尝试添加一个新进程(创建ProcessBluePrint的实例并将其保存在适当的表中)时,ProcessBluePrint的名称和描述显示为文本,而应该是下拉列表。也许最好的方法是将其设为两步实例化:步骤1 =选择ProcessBluePrint选项,步骤2 =选择与该流程模型关联的所有字段。我附上了快照,以帮助您解决我的问题。我真的很感谢你对这个的帮助。 TIA
示意图
models.py
class ProcessBluePrint(models.Model):
name=models.CharField(max_length=50, unique=True,)
desc=models.CharField(max_length=255,)
def __str__(self):
return self.name
class ActivityBluePrint(models.Model):
tag=models.CharField(max_length=10,)
caption=models.CharField(max_length=50,blank=True)
process_blueprint=models.ForeignKey('ProcessBluePrint')
activity=models.ForeignKey('Activity')
action=models.ForeignKey('Action')
actor=models.ForeignKey('auth.User')
def __str__(self):
if self.caption:
return self.process_blueprint.name + '_Activity_' + self.tag + ' (' + self.caption + ')'
else:
return self.process_blueprint.name + '_Activity_' + self.tag
class Meta:
ordering=['tag']
class FlowBluePrint(models.Model):
caption=models.CharField(max_length=50,blank=True)
process_blueprint=models.ForeignKey('ProcessBluePrint')
origin=models.ForeignKey('ActivityBluePrint',related_name='origin')
destination=models.ForeignKey('ActivityBluePrint',related_name='destination')
def __str__(self):
return self.process_blueprint.name + '_Flow_' + self.origin.tag + 'to' + self.destination.tag
class Process(ProcessBluePrint, models.Model):
type=models.ForeignKey('ProcessType')
prodline=models.ForeignKey('ProdLine')
business=models.ForeignKey('Business')
project=models.ForeignKey('Project')
start=models.DateTimeField(auto_now_add=True,)
end=models.DateTimeField(blank=True, auto_now=True)
user_created=models.ForeignKey('auth.User')
date_created=models.DateTimeField()
notes=models.TextField(max_length=500,)
status=models.ForeignKey('Status')
class Meta:
verbose_name_plural = 'Processes'