#模型层
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
标签:Serializers,name,models,list,id,表解,序列化,email,verbose From: https://www.cnblogs.com/kaibindirver/p/17147733.html