序列化组件之生成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'),
返回到前端的数据