model增加新字段后如何进行序列化
1、在model里面,增加进入新的字段,并同步到数据库 >>python manage.py makemigrations
2、在SnippetSerializer 增加新字段的对应序列化
a) 如果是直接一对一序列化,那么直接用 xxxx = serializers.XXXXFIled(requied =false)
b) 如果继承自 serializers.ModelSerializer,则在 fields字段里面新增 这个字段 'xxxx'
3、在views.py里面看看是否需要做调整
model里面新增一个外键如何进行序列化
1、在model里面,增加新的外键,并同步到数据库,如下:
owner=models.ForeignKey('auth.User', related_name='snippets', verbose_name=u'创建者',default=1)
2、在SnippetSerializer对新增加的外键进行序列化
a)如果不需要展示开User的字段,直接显示的就是user的id,不可点击,不会展开
b) 如果希望外键的信息可以被仔细展开,可以详细展示,那么需要增加外键model的序列器
owner = UserSerializer()
注意:在做的时候,因为UserSerializer的序列类放到了SnippetSerializer序列类下面,在SnippetSerializers调用UserSerializer失败
实现创建的对象和外键的关联
1、在model里面定义了外键
2、进入到该对象的序列化对象列表中,增加该外键的序列化,并将该字段增加到 fields里面
permission_classes=(permissions.IsAuthenticatedOrReadOnly)
3、进入到该对象的视图列表,SnippetList里面,增加一条记录来从request里面获取user并保存到表
defperform_create(self, serializer):
serializer.save(owner=self.request.user)
4、在User的序列器里面,也要反向关联,
snippets=serializers.PrimaryKeyRelatedField(many=True,queryset=Snippet.objects.all())
这样我们就实现了对象和外键的关联