Serializers 序列化 新增一个字段(处理后赋值) 扔给前端 (实现表和表解偶) 含对modele层对应字段添加属性写法
#模型层
class tbl_project_category(models.Model):
depart_id = models.IntegerField(verbose_name='部门id', default=0)
pro_name = models.CharField(max_length=50, verbose_name='项目名')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now_add=True, verbose_name='更新时间')
send_email = models.TextField(validators=[int_list_validator], default=[], verbose_name='关联用户ID')
is_deleted = models.BooleanField(default=False)
#序列化
class SendEmailSerializers(serializers.ModelSerializer):
class Meta:
model = tbl_project_category
fields = ('id', 'pro_name', 'send_email', 'list_email') #list_email 是新增加的字段
extra_kwargs = {
'id': {
'read_only': True,
},
'pro_name': {
'read_only': True,
},
}
# send_email = serializers.SerializerMethodField()
list_email = serializers.SerializerMethodField()
def get_list_email(self, obj):
objs = eval(obj.send_email)
email_name = tbl_user.objects.filter(id__in=objs).all() #查询其他表操作后赋值
res = []
for item in email_name:
res.append(item.email)
return res
通过自定义校验也可以达到了类似的效果。 ---这个只有校验的时候才有用,输出的得用本文章的方法
https://www.cnblogs.com/kaibindirver/p/16770753.html