序列化器
class User(models.Model):
username = models.CharField(max_length=20)
password = models.CharField(max_length=120)
is_admin = models.BooleanField(default=False)
phone = models.CharField(max_length=11, null=True)
email = models.EmailField(null=True)
class ApproveFlow(models.Model):
workerFlow = models.ForeignKey(WorkerFlow, on_delete=models.CASCADE)
sequence = models.SmallIntegerField('序号')
approve_type = models.IntegerField(choices=((1, "指定人员"), (2, "指定角色")))
approve_id = models.IntegerField('审批人或角色的ID')
class Meta:
db_table = 'approve_flow'
verbose_name = '审批流'
verbose_name_plural = verbose_name
序列化器
class ApproveFlowListSerializers(serializers.ModelSerializer):
workerFlow = serializers.StringRelatedField()
approve_name = serializers.SerializerMethodField() 自定义的名字approve_name
def get_approve_name(self, obj):
if obj.approve_type == 1:
# 表示是用户
return User.objects.get(id=obj.approve_id).username
class Meta:
model = ApproveFlow
fields = '__all__'
approve_name": "wang" 把ApproveFlow的approve_id翻译成User表中对应的用户名