序列化自定义字段
表设计
#审批流 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':'角色组审批' }
展示