表设计
#审批流
class ApproveConf(models.Model):
# permission_classers=(IsAu)
approve_type_chice= (
('1', "指定人员审批"),
('2', "角色组审批"),
)
flowconf=models.ForeignKey(FlowConf,on_delete=models.CASCADE)
sequence = models.CharField(max_length=64,verbose_name='审批序号')
approve= models.CharField('审批类型',choices=approve_type_chice, default='1',max_length=16)
approve_id = models.CharField(max_length=32,verbose_name='审批人ID或者审批角色')
# def __str__(self):
# return self.sequence
class Meta:
db_table='tb_approveactionconf
序列化
class ApproveConfSerializers((serializers.ModelSerializer)):
flowconf=serializers.CharField(source='flowconf.name',read_only=True)
#审批类型 自定义查找choices字段方法
approve_name=serializers.SerializerMethodField(required=False)
#审批人id或者审批角色id
approve_id_id=serializers.SerializerMethodField(required=False)
class Meta:
model=ApproveConf
fields="__all__"
def get_approve_name(self,row):
approve_type_chice=dict(row.approve_type_chice)
return approve_type_chice.get(row.approve)
def get_approve_id_id(self,row):
approve=row.approve #审批类型
approve_id=row.approve_id #审批人id或者审批角色id
if approve=='1':
"指定人审批"
ss=User.objects.get(id=approve_id)
return {
'ss':ss.username,
'approve':'指定人审批'
}
elif approve=='2':
'角色组审批'
ss=Role.objects.get(id=approve_id)
return {
'ss':ss.zh_name,
'approve':'角色组审批'
}
展示