from rest_framework import serializers
目前创新互联已为千余家的企业提供了网站建设、域名、虚拟空间、网站运营、企业网站设计、宣城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
class AuthorSerializer(serializers.Serializer):
nid = serializers.CharField()
name = serializers.CharField()
age = serializers.CharField()
# class BookSerializer(serializers.Serializer):
# # 可以用source修改别名
# xx = serializers.CharField(source='name')
# price = serializers.CharField()
# sb = serializers.CharField(source='publish.city')
# test = serializers.CharField(source='publish.test')
# publish_id = serializers.CharField()
# # SerializerMethodField,可以指定一个方法
# # publish=serializers.SerializerMethodField()
# # # 方法名:叫get_字段名,要传参数,参数是:当前book对象
# # def get_publish(self,obj):
# # # obj 是当前book对象0
# # dic={'name':obj.publish.name,'email':obj.publish.email}
# # return dic
# authors=serializers.SerializerMethodField()
# # def get_authors(self,book):
# # #拿到这本书的所有作者
# # aus=book.authors.all()
# # # 拼出一个列表,列表中套字典,每个字典是一个作者
# # ll=[]
# # for a in aus:
# # ll.append({'name':a.name,'age':a.age})
# # return ll
# def get_authors(self,book):
# #拿到这本书的所有作者
# aus=book.authors.all()
# # 可以继续用序列化类,来处理
# auth_ser=AuthorSerializer(aus,many=True)
# return auth_ser.data
from ap01.models import Book
# class BookSerializer(serializers.ModelSerializer):
# # 必须写一个内部类,名字叫Meta
# class Meta:
# model = Book
# fields = '__all__'
# # 重写属性
# publish = serializers.CharField(source='publish.name')
# authors = serializers.SerializerMethodField()
# def get_authors(self, book):
# # 拿到这本书的所有作者
# aus = book.authors.all()
# # 可以继续用序列化类,来处理
# auth_ser = AuthorSerializer(aus, many=True)
# return auth_ser.data
class BookSerializer(serializers.ModelSerializer):
# 必须写一个内部类,名字叫Meta
class Meta:
model = Book
# fields = '__all__'
# 指定只取这两个字段
fields = ['nid','name']
# 去掉指定的字段
# exclude=['publish','authors']
# fields,跟exclude不能连用
# 指定深度(官方建议小于10,我给你的建议小于3)
# depth = 2