美文网首页
RestFreamwork笔记:model增加新字段后如何进行序

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

作者: 金金刚狼 | 来源:发表于2017-07-28 11:55 被阅读0次

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

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

    相关文章

      网友评论

          本文标题:RestFreamwork笔记:model增加新字段后如何进行序

          本文链接:https://www.haomeiwen.com/subject/cdmxlxtx.html