RestFreamwork笔记:model增加新字段后如何进行序列化

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())

这样我们就实现了对象和外键的关联

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容