序列化器
1)序列化(正向查找)
from rest_framework import serializers
from users.models import UserInfo
class UserInfoSerializer(serializers.Serializer):
name = serializers.CharField(min_length=3,max_length=20)
ut = serializers.CharField(source='ut.type_name',required=False)
gp = serializers.SerializerMethodField(read_only=True)
xxx = serializers.CharField(source='name',required=False)
ut_id = serializers.IntegerField(write_only=True)
'''PrimaryKeyRelatedField和StringRelatedField:可以用对 一对多 和 多对多 关联对象序列化'''
class Meta:
model = UserInfo
def get_gp(self,row):
'''row: 传过来的正是 UserInfo表的对象'''
gp_obj_list = row.gp.all().values('id','group')
return gp_obj_list
2)序列化(反向查找)
''' 一对多序列化(反向查找)'''
class UserTypeSerializer(serializers.Serializer):
type_name = serializers.CharField()
userinfo_set = serializers.PrimaryKeyRelatedField(read_only=True, many=True)