序列化组件之生成hypermedialink

一  生成hypermedialink(极少数)

组件

class BooksSerializer(serializers.ModelSerializer):
    name = serializers.CharField()

    class Meta:
        model = models.Book
        fields = '__all__'
        # 生成链接,直接查看出版社详情
        publish = serializers.HyperlinkedIdentityField(view_name='ttt', lookup_field='publish_id',
                                                       lookup_url_kwarg='pk')
        authors = serializers.SerializerMethodField()

        def get_authors(self, obj):
            ret = obj.authors.all()
            ss = AuthorSerializer(ret, many=True)
            return ss.data

view

class Books(APIView):
    def get(self, request, *args, **kwargs):
        ret = models.Book.objects.all()
        book_ser = BooksSerializer(ret, many=True,context={'request': request})
        # 注意: 要在有返回链接的函数中要加 context={'request': request}
        print(book_ser)
        return JsonResponse(book_ser.data, safe=False)

 

url

  url(r'^publish/(?P<pk>\d+)$', views.Publish.as_view(), name='ttt'),

返回到前端的数据

 

posted @ 2018-12-12 17:12  zhaijihai  阅读(259)  评论(0编辑  收藏  举报