我有一个自定义分页符,需要访问kwargs
参数pk
给出类似这样的网址。
r'^(?P<pk>[0-9]+)/stuff/$'
这就是我现在正在做的事情,但感觉有点hackish。 这是我的观点。
class StuffList(ListAPIView):
serializer_class = MySerializer
pagination_class = MyPagination
def get_queryset(self):
self.request.kwargs = self.kwargs
return Stuff.objects.all()
然后,在我的paginator中,当请求对象作为参数传递给paginate_queryset
时,我可以通过它访问kwargs。
def paginate_queryset(self, queryset, request, view=None):
"""Returns paginated queryset."""
self.pk = request.kwargs.get('pk')
pass
是否有其他方法可以从请求对象访问它而无需在get_queryset
中手动将kwargs添加到其中?我发现它很奇怪,因为我可以轻松地获取大量有关请求对象的信息,但似乎无法简单地获取url kwargs,这迫使我自己添加它们。谢谢!
答案 0 :(得分:-1)
根据文档,访问实例对象上的kwargs是有效的:http://www.django-rest-framework.org/api-guide/filtering/#filtering-against-the-url