-1 publish = serializers.HyperlinkedIdentityField(view_name='ttt',lookup_field='publish_id',lookup_url_kwarg='pky')

# class BookSerializer(serializers.Serializer):

#     name = serializers.CharField()

#     # publish = serializers.CharField()

#     publish = serializers.HyperlinkedIdentityField(view_name='ttt',lookup_field='publish_id',lookup_url_kwarg='pky')

from rest_framework.exceptions import ValidationError



-2 view_name:路由的别名,lookup_field:根据表的哪个字段,来拼路径,lookup_url_kwarg:反向解析有名分组的名字

-3 写路由:url(r'^publish/(?P<pky>\d+)', views.Publish.as_view(),name='ttt'),

-4 实例化序列化类的时候,需要把request对象传过去

book_ser=BookSerializer(ret,many=True,context={'request': request})



class Books(APIView):

    def get(self, request, *args, **kwargs):

        ret = models.Book.objects.all()

        # 生成一个序列化的对象,传参数

        # 序列化多条,记住many=True

        book_ser = BookSerializer(ret, many=True, context={'request': request})

        print(book_ser.data)

        return JsonResponse(book_ser.data, safe=False)